удалить первый li ul в jquery

0

Существует петля циклы циклы

<?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 из ul из каждого продукта

если я использую как это $(".color li:first").css("display", "none"); это скрыть только первый li из первой ul но я хочу удалить первый li из каждой ul

Я попытался использовать next() и функции вроде .each. Я также создал функцию и назвал ее в первом цикле, расположенном выше ul.

Ничего не работает.

Не могли бы вы мне помочь, пожалуйста?

  • 0
    $ (. LI) [0] .remove ()
  • 0
    Как насчет показа нам фрагмента сгенерированного HTML вместо PHP?
Показать ещё 2 комментария
Теги:

5 ответов

1
Лучший ответ

Вы можете сопоставить первый ребенок любых/всех запросов jQuery, просто используя селектор first-child (ключ в имени) :)

например

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

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

В основном это говорит: "найти все элементы ul с классом" цвет ", а затем найти любых потомков li, но только соответствовать li когда он является первым потомком его родителя"

:first с другой стороны, "все, что я сопоставил перед собой, независимо от того, сколько совпадений просто возвращает первый элемент".

2

используйте селектора css3:

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

см. эту скрипту, чтобы увидеть, как она работает.

обратите внимание, что псевдо-селектор jquery :first создает коллекцию в свой первый элемент, а селектор css выбирает все узлы, которые являются первым потомком их соответствующего родителя (на самом деле css3 предоставляет обобщение :nth-child(an+b), где a и b - целые числа, так что итерация n над неотрицательными целыми числами создает индекс целевых элементов среди всех дочерних элементов. Это не требуется для вашей текущей задачи, но может пригодиться на каком-то этапе будущего развития).

благодаря @Bergi за то, что он указал на пригодность этого объяснения.

  • 1
    Может быть, также объяснить, почему :first не работает?
  • 0
    Я также использую это, но это только удалить первый продукт li и ничего :(
Показать ещё 1 комментарий
1

вы можете удалить это:

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

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

});

Fiddle DEMO

  • 0
    Спасибо большое, дорогой :)
  • 1
    Второй вариант НЕ работает! увидеть эту скрипку
0

существует так много методов, как eq, nth-child selectors

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

или

$('.colors li:nth-child(1)').remove();
  • 0
    Я также использую это, но это только удалить первый продукт li и ничего. остальные 151 товара такие же :(
  • 0
    Пожалуйста, объясните разницу между двумя представленными вами фрагментами.
Показать ещё 3 комментария
-2

Вы можете попробовать следующее:

 $(".color").find("li:first").remove();
  • 0
    это удалить все li's :(

Ещё вопросы

Сообщество Overcoder
Наверх
Меню