2013-09-25 2 views
1

Возможно ли с помощью jQuery выбрать все «IDS» для определенного блока одновременно? Я знаю, что вы можете указать, например, $('div'), но я хотел бы выбрать ID в моем объекте. Есть ли простой способ сделать это в jQuery? Что-то вроде:Выделить все HTML-ID как объект jQuery

$object = $('.wrapper'); 

$object.find(function(){ 

//GET ALL THE IDS..somehow?! 

}); 
+0

вы хотите, чтобы получить список всех 'id' значений каждого элемента, содержащихся в '.wrapper'? –

+4

Хотя очень просто получить все идентификаторы в элементе или на странице, я больше беспокоюсь о том, почему вы считаете, что в них нуждаетесь. Какая цель имеет идентификаторы этих элементов? Это звучит как проблема [x-y] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). – zzzzBov

+0

Да, это было @zzzzBov, как только я отправил сообщение, я снова посмотрел и выяснил, что проблема, которую я пыталась понять, была совсем не такой, и все, что было необходимо, было немного логичным приложением. Но я теперь научился использовать '.map()' так что спасибо @Cory. – m33bo

ответ

10

Я немного любопытно, его цели, но вы можете попробовать это:

var ids = $('[id]', $object).map(function() { 
    return this.id; 
}); 

Он использует $object, чтобы обеспечить контекст для вашего выбора, находит все элементы в указанном контексте что имеют атрибут id, а затем строит массив значений id.

FYI, результирующая переменная ids представляет собой объект типа массива jQuery. Если вы просто хотите простой массив JS, добавьте .get() после функции карты:

var ids = $('[id]', $object).map(function() { 
    return this.id; 
}).get(); 
//^

jsFiddle Demo

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