Как получить индексный номер переключателя для каждой функции в jquery - PullRequest
1 голос
/ 10 сентября 2010

При использовании функции each () в jquery для группы, скажем, из 3 переключателей, как мне получить третью кнопку, чтобы, когда она проверена, что-то произошло? Как выбрать элемент, с которым я хочу работать, из функции each ()?

Вот моя кодировка:

HTML:

<form id="orderDefinition" name="orderDefinition">
  <fieldset>
    <input type="radio" name="radioGroup" /><label for="">radio 1</label>
    <input type="radio" name="radioGroup" /><label for="">radio 2</label>
    <input type="radio" name="radioGroup" /><label for="">radio 3</label>    
  </fieldset>
</form>

JQuery:

var radioBtnCollection = $("#orderDefinition input:radio");

$(radioBtnCollection).each(function(){
    // From here, I don't know how to get the element
});

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 10 сентября 2010

Вы можете обратиться к элементу, используя оператор this :

radioBtnCollection.each(function(){
    alert(this.name);
});

Или используя аргументы, предоставленные функции:

radioBtnCollection.each(function(index, element){
    if (index == 2 && element.checked)
        alert("3rd element is checked!");
});

Если вы хотите выполнить какие-либо методы jQuery для элемента, вам нужно обернуть его с помощью jQuery. Для первого примера $(this), для второго примера $(element).

Вы можете просто получить третью радиокнопку, используя : eq (2) вместо каждого:

if ($("#orderDefinition input:radio:eq(2)")[0].checked)
    alert("3rd element is checked!");
0 голосов
/ 10 сентября 2010

Использовать this в качестве объекта jQuery:

$(radioBtnCollection).each(function(){
    // this points to the element being iterated
    $(this)
});
...