2010-01-13 3 views
0

У меня есть simle htmldiv с переменным числом входных флажков из и я whould нравится чекбокс, который Чек является cheked и который не являетсяjQuery: Как получить набор элементов?

HTML код:

<div> 
    <input type="checkbox" val="1"/>Check One<br/> 
    <input type="checkbox" val="2" checked="checked"/>Check Two<br/> 
</div> 

Javascript код:

var $kids = $("div").children("input"); 

for (var i = 0; i < $kids.length; i ++) { 
    // if i alert($kids[i]); i get [object HTMLInputElement] how can i work with it? 
    alert ($kids[i].val()); // doesn't work 
} 

В jQuery site Я читаю children() Метод может «Получить набор элементов, содержащих все уникальные непосредственные дети каждого из согласованных наборов элементов NTS «. но что такое «набор элементов» и как я могу работать с ним?

ответ

1

EDIT:

я прочитал ваш вопрос более тщательно вы спрашивали, как перебрать набор. как уже было сказано вы можете сделать:

$('div input:checked').each(function(){ 
    // do something with the item this is always the current element in the iteration 
}); 

или

$.each(yourVar, function(i, e){ 
    // your var can be anything iterable really... an object, an array i is the index and e is the value for that index 
}); 

$('div input:checked'); должен работать.

0

Работы с набором элементов очень похож на работу с одним элементом в JQuery .. Есть много методов, которые можно использовать для разделения сегментов до .each() позволяет работать с каждым элементом, .css(), .animate() , .show() и т. Д., Все они работают со всеми элементами, также установленными в наборе. Вы можете использовать .get() или просто индекс массива [0], чтобы получить отдельные элементы из набора jQuery.

3

$("input:checkbox:checked") или $("input:checkbox:not(:checked)")

Вы должны добавить идентификатор в контейнере, чтобы ограничить варианты ...
<div id="container"> inputs here </div>

Затем вы можете использовать ...
var checked = $("#container input:checkbox:checked");
var unchecked = $("#container input:checkbox:not(:checked)");

0
  • Это селектор предоставит вам все флажки:
  • Этот селектор поможет вам все галочки, которые проверяются: input:checkbox:checked
  • Этот селектор получит вам все галочки, которые не проверены: input:checkbox:not(:checked)
0

Вы можете получить доступ к элементам с $ дети [я ], но то, что вы возвращаете, не является объектом JQuery, это стандартный элемент DOM. Поэтому вы не можете вызвать метод .val(), потому что этого не существует для объектов DOM.

Так на самом деле у вас есть только сделать небольшое изменение:

var $kids = $("div").children("input"); 

for (var i = 0; i < $kids.length; i ++) { 
    // if i alert($kids[i]); i get [object HTMLInputElement] how can i work with it? 
    alert ($kids[i].checked); // does work :-) 
} 

Надеется, что это помогает!