5 ответов:
использовать
children()иeach(), вы можете дополнительно передать селектор вchildren$('#mydiv').children('input').each(function () { alert(this.value); // "this" is the current element in the loop });вы также можете просто использовать непосредственный дочерний селектор:
$('#mydiv > input').each(function () { /* ... */ });
также можно перебирать все элементы в определенном контексте, не важно, насколько глубоко они вложены:
$('input', $('#mydiv')).each(function () { console.log($(this)); //log every element found to console output });второй параметр $('#mydiv'), который передается селектору jQuery 'input', является контекстом. В этом случае предложение each() будет перебирать все входные элементы в контейнере #mydiv, даже если они не являются прямыми потомками #mydiv.
Если вам нужно перебирать дочерние элементы рекурсивно:
function recursiveEach($element){ $element.children().each(function () { var $currentElement = $(this); //////////// Show element console.info($currentElement); //////////// Show events handlers of current element console.info($currentElement.data('events')); //////////// Loop her children recursiveEach($currentElement); }); } //////////// Parent div recursiveEach($("#div"));
Примечание: В этом примере я показываю обработчики событий, зарегистрированные с объектом.
Это можно сделать и так.
$('input', '#div').each(function () { console.log($(this)); //log every element found to console output });
Comments