Как выбрать родительский элемент и все дочерние элементы div, которые не являются первыми, а также братьев и сестер родителей и их детей?

0

Извините за плохой титул, я не уверен, как сформулировать эту проблему.

Мне нужна помощь в написании 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, который он находит.

Мысли или предложения?

  • 0
    $(".childBlock").not(':first') не делает то, что вы хотите?

2 ответа

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

Вы были очень близки. Вы хотите first-child, а не first:

http://jsfiddle.net/pMYWS/

$(".parentBlock").find(".childBlock").not(':first-child').text("Subcategory");

(Я предполагаю, что label.category присутствует в вашем реальном коде, который не показан в этом демонстрационном фрагменте)

  • 0
    Это сделал это. Не могу поверить, что это было маленьким изменением. Благодарю.
1

как насчет чего-то подобного?

$(".childBlocks:not(:first-child)") (do something here)

Ещё вопросы

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