删除jquery中的第一个li

remove first li of ul in jquery

本文关键字:第一个 li jquery 删除      更新时间:2023-09-26

循环中有一个循环

<?php while ($data = mysql_fetch_array($some)) 
{?> 
  <div class="pro"> 
    <div class="right-block"> bla bla bla bla </div>
     <ul class="color">
      <?php while($bla = $bla)
       { ?>
          <li><?php echo $bla; ?></li>
       <?php } ?> 
     </ul>
   </div> 
 <?php } ?>

此循环显示152个产品,每个产品至少有3到4种颜色

现在我想从每个产品中删除ul的第一个li

如果我像这样使用$(".color li:first").css("display" , "none");,这个隐藏只是第一个ul的第一个li,但我想从每个ul中删除第一个li

我尝试使用next().each等功能。我还创建了一个函数,并在ul上方的第一个while循环中调用它。

没有效果。

use css3 selectors:

$('ul > li:first-child').remove();

看看这个小提琴,看看它的工作。

注意jquery的伪选择器:first将一个集合投射到它的第一项,而css选择器选择所有节点,它们是各自父节点的第一子节点(实际上css3提供了:nth-child(an+b)的一般化,其中ab是整数,这样在非负整数上迭代n会产生目标元素在所有子节点中的索引。当前任务不需要,但在将来的开发阶段可能会派上用场)。

感谢@Bergi指出这个解释的适用性。

您可以通过简单地使用first-child选择器(线索在名称中)匹配任何/所有jQuery搜索的第一子节点:)

  $('ul.color li:first-child').remove();

JSFiddle: http://jsfiddle.net/TrueBlueAussie/yj69m/5/

这基本上是说:"找到所有的ul元素与类"color",然后找到任何li的后代,但只有匹配li时,它是其父的第一个子"

另一方面,

:first表示"无论我事先匹配了多少,无论匹配多少,只返回第一个元素"。

可以这样删除:

$('div.pro').each(function(){
    $(this).find('ul.colors').find('li:first').remove();
});
<<p> 小提琴演示/strong>

有很多方法比如eq n -child selectors

$('.colors li').eq(0).remove();

$('.colors li:nth-child(1)').remove();

你可以试试:

 $(".color").find("li:first").remove();