如何使用jquery删除元素和下一个元素?

时间:2017-02-17 17:41:08

标签: javascript jquery html

我试图在它之后立即删除一个元素和元素。知道为什么这不起作用吗?:

$('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;
&#13;
&#13;

这只是我在我的项目中尝试做的hwat的一个例子。我需要使用find方法,不能改变那个部分。感谢

7 个答案:

答案 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()函数获得一个空集合,没有任何反应。

正确的方式:

&#13;
&#13;
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;
&#13;
&#13;

答案 4 :(得分:0)

在您的具体情况下,elclanrs' solution是可行的方法。

在想要删除下一个元素的常规情况下,即使它与初始选择器不匹配,您也可以使用addnext:< / p>

var toRemove = $("selector for the matching thing");
toRemove.add(toRemove.next()).remove();

&#13;
&#13;
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;
&#13;
&#13;

答案 5 :(得分:0)

您必须同时删除第一个和下一个。

所以使用:

 $('ul li:eq(0), ul li:eq(1)').remove(); 

答案 6 :(得分:0)

您可以使用addBack()

$('ul').find('li').first().next().addBack().remove()

就lis而言,这没有多大意义,因为这只是一个过于复杂的方式来说前两个lis。但是,如果我们讨论仲裁节点,那么这将是选择“此节点+下一个节点”的最简单方法,并删除它们