2014-09-07 2 views
1

У меня есть флажки на странице, и я получаю проверенные, затем прокручиваю их;Получение значения «объект HTMLInputElement» и ошибка функции

var checkeds = $('#accTypes input:checked'); 
    var values = ""; 

    for (var i = 0; i < checkeds.length; i++) { 
     console.log(checkeds[i]); 
     var cval = checkeds[i].val(); 
     values = values + "," + cval; 
    } 

Я понял, что строка ниже вызывает ошибку.

checkeds[i].val() 

Когда я печатаю контрольную переменную [i] в ​​хром-консоли, я вижу;

<input type=​"checkbox" name=​"accom-check" id=​"checkboxP12" value=​"12">​ 

Я хотел получить значение контрольной переменной [i]. Как я могу это сделать?

ответ

4

Коллекция jQuery представляет собой объект, подобный массиву, содержащий нативные узлы DOM.

Когда вы обращаетесь к нему как checkeds[1], вы получаете собственный DOM-узел, а не версию jQuery, поэтому у него нет метода val().

Либо использовать нативный значение

var cval = checkeds[i].value; 

или использовать eq(), чтобы получить объект JQuery

var cval = checkeds.eq(i).val(); 

Как Замечание, вы могли бы сделать то же самое с картой

var values = $('#accTypes input:checked').map(function() { 
    return this.value; 
}).get().join(','); 
+0

отлично, спасибо! –

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