Как получить доступ к этому в Jquery каждый - PullRequest
2 голосов
/ 29 февраля 2012

Я перебираю элементы ввода, используя .each(), и хочу получить class каждого элемента ввода.

$("input").each(function(index,element){
 // Here I want to access class value of current input ie. element here (I guess) 
});

Например

HTML

<input name="name1" class="class1" value="input1">
<input name="name2" class="class2" value="input2">

Я попробовал следующие селекторы в .each, но получил возврат как undefined

 1. alert($('this').attr['class']);  
 2. alert($(this).attr['class']);      
 3. alert(element.class);  // I can access name using element.name
 4. alert($(element).attr['class']);

Jsfiddle: http://jsfiddle.net/kGjr2/
Как я могу получить доступ к соответствующим input и его свойствам внутри .each()?

Спасибо!


Действительно поражен количеством и качеством ответов, и в течение очень короткого времени. Просто интересно, какой ответ я должен принять. Спасибо вам всем.

Ответы [ 3 ]

5 голосов
/ 29 февраля 2012

Просто используйте круглые скобки вместо квадратных скобок ... вы вызываете функции:

$("input").each(function(index,element){
    alert($(this).attr('class'));
});

Вы также можете выбрать элементы по классу:

$('.class1')...//do something to only the elements with the `class1` class

Вот обновленная версиявашего JSFiddle: http://jsfiddle.net/kGjr2/1/

Обновление

Причина, по которой вы получаете undefined предупреждение, заключается в том, что квадратные скобки предназначены для доступа к свойству объекта / массива.Но так как вы используете квадратные скобки в функции, вы не найдете имена свойств, которые соответствуют class.

2 голосов
/ 29 февраля 2012

Класс элемента хранится в свойстве className, поэтому используйте this.className или element.className.

1 голос
/ 29 февраля 2012

Ты рядом.

$(this).attr("class");
...