Существует петля циклы циклы
<?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
.
Ничего не работает.
Не могли бы вы мне помочь, пожалуйста?
Вы можете сопоставить первый ребенок любых/всех запросов jQuery, просто используя селектор first-child
(ключ в имени) :)
например
$('ul.color li:first-child').remove();
В основном это говорит: "найти все элементы ul
с классом" цвет ", а затем найти любых потомков li
, но только соответствовать li
когда он является первым потомком его родителя"
:first
с другой стороны, "все, что я сопоставил перед собой, независимо от того, сколько совпадений просто возвращает первый элемент".
используйте селектора css3:
$('ul > li:first-child').remove();
см. эту скрипту, чтобы увидеть, как она работает.
обратите внимание, что псевдо-селектор jquery :first
создает коллекцию в свой первый элемент, а селектор css выбирает все узлы, которые являются первым потомком их соответствующего родителя (на самом деле css3 предоставляет обобщение :nth-child(an+b)
, где a
и b
- целые числа, так что итерация n
над неотрицательными целыми числами создает индекс целевых элементов среди всех дочерних элементов. Это не требуется для вашей текущей задачи, но может пригодиться на каком-то этапе будущего развития).
благодаря @Bergi за то, что он указал на пригодность этого объяснения.
:first
не работает?
вы можете удалить это:
$('div.pro').each(function(){
$(this).find('ul.colors').find('li:first').remove();
});
существует так много методов, как eq, nth-child selectors
$('.colors li').eq(0).remove();
или
$('.colors li:nth-child(1)').remove();
Вы можете попробовать следующее:
$(".color").find("li:first").remove();