Вы не имеете в виду .children(i)
. Вы имеете в виду .get(i)
, а еще лучше просто [i]
:
for(var i=0 ; i<$('input[name=select_option]').size(); i++) {
alert(i);
// both .get() and array index return a DOM object
alert($('input[name=select_option]').get(i).value);
alert($('input[name=select_option]')[i].value);
// or, if you want to use .val(), wrap it in jQuery again
alert( $($('input[name=select_option]')[i]).val() );
}
Но это не очень хорошо или эффективно. По крайней мере, вы можете сохранить результат $('input[name=select_option]')
в переменной перед входом в цикл. Однако jQuery упрощает итерацию, поэтому используйте .each()
:
var values = [];
$('input[name=select_option]').each( function () {
values.push(this.value);
});
или, может быть, даже
var values = $('input[name=select_option]').map( function () {
return this.value;
});
Обратите внимание, что $.map()
- обычная функция jQuery - возвращает объект jQuery. Для многих целей эти объекты ведут себя как массивы.
Если вам нужно получить массив real , используйте .toArray()
:
var values = $('input[name=select_option]').map( function () {
return this.value;
}).toArray();