我们通过html
删除某个JQuery
元素的子项:
$(PARENT_SELECTOR).children(CHILD_SELECTOR).remove()
但是我怎样才能使其表现得像.splice()
方法(例如,在DOM
树上删除给定的索引和偏移量)。例如:
删除最后三个孩子。在这里,我最有可能使用:
for(var x = 0; x < 3; x++) {
$(PARENT_SELECTOR).children().last().remove()
}
删除第4至第6名儿童。我将在这里使用:
$(PARENT_SELECTOR).children().eq(3).remove()
$(PARENT_SELECTOR).children().eq(4).remove()
$(PARENT_SELECTOR).children().eq(5).remove()
从第5个孩子开始删除5个元素(这是我希望.splice()
具有JQuery
功能的真实场景:
var starting = 5,
index = 5
// I haven't tested this yet.
for(var x = index + starting; x > index; x--) {
$(PARENT_SELECTOR).children().eq(x - 1).remove()
}
然后列表继续......我可以为每个场景制作我自己的案例到案例 [,这很容易] 。我只是想知道JQuery
是否已经拥有它自己的功能 - 它会使我的脚本缩短,并且不会让我重复编写类似的代码。
答案 0 :(得分:2)
我认为$.slice正是您所寻找的。以下是示例:
<ul>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
<li>list item 4</li>
<li>list item 5</li>
</ul>
$( "li" ).slice( 2, 4 ).remove();
请记住,.slice()
以索引0开头,因此上面的例子将删除第三个到第五个孩子。
答案 1 :(得分:1)
jQuery Slice方法根据索引选择元素子集。 此方法用于通过起点和终点限制组中元素的选择:start参数是从中创建子集的起始索引(从0开始),stop参数是可选的结束点。 您可以找到更好的解释here和here
$(document).ready(function(){
$("p").slice(1).css("background-color", "red");
$("p").slice(2,4).remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>para 0.</p>
<p>para 1.</p>
<p>para 2.</p>
<p>para 3.</p>
<p>para 4.</p>