2012-06-26 2 views
1

У меня есть DOM дерево:Найти же дивы в DOM дереве

<div id="all"> 
    <div id="second"> 
    <div id="target"></div> * 
    <div id="somediv"></div> 
    </div> 
    <div id="second"> 
    <div id="target"></div> 
    <div id="somediv"></div> 
    </div> 
    <div id="second"> 
    <div id="target"></div> 
    <div id="somediv"></div> 
    </div> 
</div> 

Как я могу получить все дивы с идентификатором = «цель»?

$('#second').siblings().andSelf().children(':first') - показывает только первую цель (*), игнорируя остальные.

+6

HTML недействителен идентификатор должен быть уникальным, ':)' –

ответ

5

У вас не может быть несколько div с одинаковым идентификатором в документе HTML. Вместо этого используйте class = "target". Тогда вы можете получить все дивы с мишенью класса во всех с

$("#all .target") 
+0

Большое спасибо, Бен! –

1

Попробуйте следующее:

$('div[id=second]').siblings().andSelf().children(':first') 

Когда представлены селектор идентификатора, JQuery будет возвращать только первый элемент с этим идентификатором. Это связано с тем, что элементы с одинаковым идентификатором недействительны HTML. HTML-парсеры, как правило, гибкие и, вероятно, будут отображаться в большинстве браузеров, однако это не гарантируется. Попробуйте изменить свою разметку, чтобы использовать атрибуты data- или классы CSS или аналогичные, а не идентификаторы.

+0

Спасибо за подробный ответ; Я буду осторожен в будущем! –

1

Вы не можете повторить ID в HTML .. заменить id="target" с class="target", а затем -

$('#all').find('.target'); 
Смежные вопросы