2013-08-12 3 views
0

Учитывая HTML:Как выбрать элемент по идентификатору в пределах существующего выбора?

<div id="div-a"></div> 
<div id="div-b"></div> 
<div id="div-c"></div> 

И ранее созданный выбор JQuery:

var $divs = $("div"); 

Как я могу выбрать конкретный DIV в этом выборе его идентификатору?
Примечание: выбор еще не был добавлен в DOM, поэтому я не могу просто выбрать напрямую (например, $("#div-b")).

find() выбирает потомков выбора, так что это не работает:

$divs.find("#div-b"); 

has()/:has() выбирает элементы, которые содержат элемент с указанным селектором, так что это не работает:

$divs.has("#div-b"); 
+1

Другие DIVs - это не дети, они братья и сестры. –

+0

@Diodeus да, я знаю. Вот почему find(), has() и т. Д. Не работают. Я что-то пропустил? – ericsoco

ответ

3

Вы хотите использовать filter(), чтобы уменьшить набор /.

var elem = $divs.filter("#div-b"); 
3

Я думаю, что вы ищете filter():

var $subset = $divs.filter("#div-b"); 
+0

geez people, вы отвечаете быстрее, чем я могу принять ваши ответы, не говоря уже об их тестировании. F.J - победитель, а @epascarello - вторая секунда. благодаря! – ericsoco

+1

На самом деле я думаю, что @epascarello ответил на полминуты передо мной. –

+0

Вы правы! Нижнее число = более последнее. Вот почему SO требует, чтобы вы подождали 10 минут, чтобы принять ответ, я думаю;) – ericsoco

1

Если вы хотите только изучить элементы в пределах конкретного объекта JQuery, который вы уже создали, вы можете использовать метод .filter():

var $divs = $("div"); 
var item = $divs.filter("#div-a"); 

Это рассмотрит только элементы в объекте $ divs jQuery, поэтому посмотрите, соответствует ли какой-либо из них селектору "#div-a" и будет рету rn вам новый объект jQuery, который содержит только совпадения (либо нулевой, либо один объект в этом случае).

+0

Вы пропустили «Выбор $ divs еще не добавлен в DOM, поэтому я не могу просто выбрать напрямую» – epascarello

+0

@epascarello - да, я думаю, я пропустил это. Хорошо, тогда вторая часть моего ответа была бы лучшим выбором в этом случае. Отредактировал мой ответ, чтобы удалить часть только с использованием идентификатора. – jfriend00

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