我试图在它之后立即删除一个元素和元素。知道为什么这不起作用吗?:
$('ul').find('li').first().remove().next().remove();
$('ul').find('li').first().remove().next().remove();

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
&#13;
这只是我在我的项目中尝试做的hwat的一个例子。我需要使用find方法,不能改变那个部分。感谢
答案 0 :(得分:4)
您可以尝试选择前两个,然后将其删除:
$('ul').find('li').slice(0, 2).remove();
答案 1 :(得分:1)
它不起作用,因为第一个被移除,因此next()
无法工作。
尝试:
$('ul').children().slice(0,2).remove();
答案 2 :(得分:1)
您尝试选择已删除元素的下一个元素。 :lt()
选择器,选择索引小于写入索引的元素。
$('ul').find('li:lt(2)').remove();
$('ul li:lt(2)').remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
答案 3 :(得分:1)
第一个元素被删除,因此next()函数获得一个空集合,没有任何反应。
正确的方式:
var $deleteMe1 = $('ul').find('li').first();
var $deleteMe2 = $deleteMe1.next();
$($deleteMe1).add($deleteMe2).remove();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
&#13;
答案 4 :(得分:0)
在您的具体情况下,elclanrs' solution是可行的方法。
在想要删除下一个元素的常规情况下,即使它与初始选择器不匹配,您也可以使用add
和next
:< / p>
var toRemove = $("selector for the matching thing");
toRemove.add(toRemove.next()).remove();
setTimeout(function() {
var toRemove = $('.m');
toRemove.add(toRemove.next()).remove();
}, 1500);
&#13;
<div>I don't match, so I'll stay</div>
<div class="m">I match, so I'll go</div>
<span>I'm the next element after the match, so I'll go to</span>
<div>I'm unrelated, so I'll stay</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 5 :(得分:0)
您必须同时删除第一个和下一个。
所以使用:
$('ul li:eq(0), ul li:eq(1)').remove();
答案 6 :(得分:0)
您可以使用addBack()
$('ul').find('li').first().next().addBack().remove()
就lis而言,这没有多大意义,因为这只是一个过于复杂的方式来说前两个lis。但是,如果我们讨论仲裁节点,那么这将是选择“此节点+下一个节点”的最简单方法,并删除它们