如何使用 jquery select 元素的所有先前兄弟姐妹?
How to select all previous siblings of element using jquery?
假设我有一个 div 下一个内容:
<div id="divOne">
<p>one</p>
<p>two</p>
<div id="aggregatedDiv"></div>
<p> three </p>
</div>
那么有没有办法去掉前三个元素呢?我不知道元素的数量。我只想删除 id="aggregatedDiv"
之前的所有内容,包括它。
我必须将结果作为 html 附加到其他 div。
$("#otherDiv").append(resultOfSlicedDivOneHtml);
您可以使用 .prevAll()
to selecting all previous sibling of element and use .addBack()
将上一个选择器 (#aggregatedDiv
) 添加到当前选定元素集。
$("#aggregatedDiv").prevAll().addBack().css("color", "red");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="divOne">
<p>one</p>
<p>two</p>
<div id="aggregatedDiv">#</div>
<p> three </p>
</div>
如果要将所选元素添加到另一个元素,请使用底部示例:
$("#aggregatedDiv").prevAll().addBack().appendTo("#divTwo");
#divTwo {color: red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="divOne">
<p>one</p>
<p>two</p>
<div id="aggregatedDiv">#</div>
<p> three </p>
</div>
<div id="divTwo"></div>
这应该有效:
var elements = $("#aggregatedDiv").prevAll(); //gets everything before aggregatedDiv
elements = elements.add($("#aggregatedDiv")); //we want aggregatedDiv in the collection as well
$("#otherDiv").append(elements); //move them all into the other div
如上所述,您可以使用 .prevAll()
,但您还需要 .addBack()
来实现您想要的:
$("#otherDiv").append($("#aggregatedDiv").prevAll().addBack());
假设我有一个 div 下一个内容:
<div id="divOne">
<p>one</p>
<p>two</p>
<div id="aggregatedDiv"></div>
<p> three </p>
</div>
那么有没有办法去掉前三个元素呢?我不知道元素的数量。我只想删除 id="aggregatedDiv"
之前的所有内容,包括它。
我必须将结果作为 html 附加到其他 div。
$("#otherDiv").append(resultOfSlicedDivOneHtml);
您可以使用 .prevAll()
to selecting all previous sibling of element and use .addBack()
将上一个选择器 (#aggregatedDiv
) 添加到当前选定元素集。
$("#aggregatedDiv").prevAll().addBack().css("color", "red");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="divOne">
<p>one</p>
<p>two</p>
<div id="aggregatedDiv">#</div>
<p> three </p>
</div>
如果要将所选元素添加到另一个元素,请使用底部示例:
$("#aggregatedDiv").prevAll().addBack().appendTo("#divTwo");
#divTwo {color: red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="divOne">
<p>one</p>
<p>two</p>
<div id="aggregatedDiv">#</div>
<p> three </p>
</div>
<div id="divTwo"></div>
这应该有效:
var elements = $("#aggregatedDiv").prevAll(); //gets everything before aggregatedDiv
elements = elements.add($("#aggregatedDiv")); //we want aggregatedDiv in the collection as well
$("#otherDiv").append(elements); //move them all into the other div
如上所述,您可以使用 .prevAll()
,但您还需要 .addBack()
来实现您想要的:
$("#otherDiv").append($("#aggregatedDiv").prevAll().addBack());