Извините за плохой титул, я не уверен, как сформулировать эту проблему.
Мне нужна помощь в написании jQuery или javascript-селектора, чтобы получить каждый childBlock, который не является первым. Существует N число родительских блоков div с по меньшей мере одним дочерним элементом childBlock div. Мы хотели бы изменить некоторые метки для каждого последующего дочернего div после первого. Каков наиболее эффективный способ выбора этих элементов?
<div class="parentBlock">
<div class="elementHead">
</div>
<div class="elementBody">
<div class="childBlocks">
<div class="childBlock" id='1'>
</div>
<div class="childBlock" id='2'>
</div>
<div class="childBlock" id='3'>
</div>
<div class="childBlock" id='4'>
</div>
...
</div>
</div>
<div>
<div class="parentBlock">
<div class="elementHead">
</div>
<div class="elementBody">
<div class="childBlocks">
<div class="childBlock" id='5'>
</div>
<div class="childBlock" id='6'>
</div>
<div class="childBlock" id='7'>
</div>
<div class="childBlock" id='8'>
</div>
...
</div>
</div>
<div>
Поэтому в приведенном выше примере я хотел бы выбрать childBlocks с идентификатором 2, 3, 4, 6, 7, 8. В моем фактическом коде эти div не имеют идентификатора, они просто классифицируются, если это делает разница вообще.
Я пробовал:
$(".parentBlock").find(".childBlock").not(':first').find('label.category ').text("Subcategory");
Но, похоже, на экране появляется первый childBlock, пропустите его, затем примените изменение текста к любому другому дочернему блоку childBlock, который он находит.
Мысли или предложения?
Вы были очень близки. Вы хотите first-child
, а не first
:
$(".parentBlock").find(".childBlock").not(':first-child').text("Subcategory");
(Я предполагаю, что label.category
присутствует в вашем реальном коде, который не показан в этом демонстрационном фрагменте)
как насчет чего-то подобного?
$(".childBlocks:not(:first-child)") (do something here)
$(".childBlock").not(':first')
не делает то, что вы хотите?