2013-10-01 4 views
-1

Я пытаюсь выбрать конкретный родительский элемент для каждого элемента, который имеет атрибут title, который начинается с «Mod» и помещает их в одну переменную, которую я могу легко контролировать.Почему этот var только выбирает первый найденный элемент?

var allMods= $('#main-element .object[title^="Mod"]').closest('.specific-parent'); 
$(allMods).hide(); 

, но он работает только на первом найденного элемента, я не могу понять, как установить вар будет каждый матч, кто-то может дать мне руку, пожалуйста?

+1

Что делает HTML выглядеть? –

+0

Ну, это все, что делает эта функция, посмотрите: http://api.jquery.com/closest/ («получить первый элемент») –

+2

Вам также нужно разместить html. –

ответ

0

Он должен работать при условии, что все элементы .object[title^="Mod"] находятся в контейнере #main-element.

Пример: Live Copy | Source

HTML:

<div id="main-element"> 
    <div class="specific-parent"> 
    <div class="object" title="Mod1">Mod1 - turns green</div> 
    </div> 
    <div class="specific-parent"> 
    <div class="object" title="Mod2">Mod2 - turns green</div> 
    </div> 
    <div class="specific-parent"> 
    <div class="object" title="Mod3">Mod3 - turns green</div> 
    </div> 
</div> 
<div> 
    <div class="specific-parent"> 
    <div class="object" title="Mod4">Mod4 - does <strong>not</strong> turn green</div> 
    </div> 
</div> 

JavaScript:

$('#main-element .object[title^="Mod"]').closest(".specific-parent").css("color", "green"); 

Результат: Только .specific-parents из .object[title^="Mod"] элементов, которые находятся в пределах #main-element зеленеть.

0

Согласно Docs:

Для каждого элемента в наборе, получить элемент первый, соответствующий селектор путем тестирования элемента себя и проходя через его предков в дереве DOM.

Вы, вероятно, хотите .parents() (обратите внимание на S, .parent() также возвращает только один элемент)

+1

Он вернет ближайший к 'каждому элементу в наборе' ... http://jsfiddle.net/tU83M/ – Archer

+0

Да, но это на ** YOUR ** dom. OP имеют совершенно другой селекторный набор и гарантируют совершенно другую DOM. –

+0

@MarcB: Может быть, другой DOM, но нет причин предполагать, что селектор OP (включая 'ближайший') не приведет к нескольким элементам, см. Мой ответ. Это все о теории множеств с jQuery. :-) –

Смежные вопросы