在jquery中删除ul的第一个li

时间:2014-05-09 12:53:10

标签: javascript jquery

有一个循环whithin循环

<?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种颜色

现在我想从每个产品中删除li的{​​{1}}

如果我像ul那样使用,则隐藏第一个$(".color li:first").css("display" , "none");的{​​{1}},但我想从每个li中删除第一个ul

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

没有任何作用。

你能帮我吗?

5 个答案:

答案 0 :(得分:2)

使用css3选择器:

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

请参阅this fiddle查看是否有效。

请注意,jquery的伪选择器:first将集合投射到其第一个项目,而css选择器选择所有节点作为其各自父节点的第一个子节点(实际上css3提供了:nth-child(an+b),其中ab是整数,因此在非负整数上迭代n会生成所有子项中目标元素的索引。这对您来说不是必需的目前的任务,但在未来的某个发展阶段可能会派上用场。)

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

答案 1 :(得分:1)

你可以这样删除:

$('div.pro').each(function(){

    $(this).find('ul.colors').find('li:first').remove();

});

Fiddle DEMO

答案 2 :(得分:1)

您只需使用first-child选择器(名称中的线索)即可匹配任何/所有jQuery搜索的第一个子项:)

e.g。

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

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

这基本上说:&#34;找到所有ul元素和类#34;颜色&#34;,然后找到任何li个后代,但只匹配li当它是其父母的第一个孩子 &#34;

时 另一方面,

:first说&#34;无论我之前匹配的是什么,无论多少匹配都返回第一个元素&#34;。

答案 3 :(得分:0)

有很多方法,比如eq,nth-child selectors

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

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

答案 4 :(得分:-1)

你可以试试这个:

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