jQuery, получить идентификатор каждого элемента в классе, используя .each? - PullRequest
55 голосов
/ 15 августа 2010

Я пытаюсь получить id каждого элемента в class, но вместо этого он оповещает каждое имя класса отдельно, поэтому для class="test" это оповещение: t, e, s, t ... Любой совет о том, как получить каждый элемент id, который является частью class, приветствуется, поскольку я не могу понять это ... Спасибо.

$.each('test', function() { 
   alert(this)
});

Ответы [ 2 ]

132 голосов
/ 15 августа 2010

Попробуйте это, заменив .myClassName на фактическое имя класса (но оставьте точку в начале).

$('.myClassName').each(function() {
    alert( this.id );
});

Так что если класс "test", вы бы сделали $('.test').each(func....

Это особая форма .each(), которая перебирает объект jQuery.

Форма, которую вы использовали, перебирает любой тип коллекции.Таким образом, вы по существу перебираете массив символов t,e,s,t.

Используя эту форму $.each(), вам нужно сделать это следующим образом:

$.each($('.myClassName'), function() {
    alert( this.id );
});

... что будет иметь тот же результат, что и в примере выше.

24 голосов
/ 15 августа 2010

patrick dw Ответ правильный.

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

var arrayOfIds = $.map($(".myClassName"), function(n, i){
  return n.id;
});
alert(arrayOfIds);
...