Как выполнить итерацию дочерних элементов div с помощью jQuery?

У меня есть div, и в нем есть несколько элементов ввода... Я хотел бы перебирать каждый из этих элементов. Идеи?

Ответ 1

Используйте children() и each(), вы можете опционально передать селектор в children

$('#mydiv').children('input').each(function () {
    alert(this.value); // "this" is the current element in the loop
});

Вы также можете использовать непосредственный дочерний селектор:

$('#mydiv > input').each(function () { /* ... */ });

Ответ 2

Также возможно выполнять итерацию по всем элементам в определенном контексте, без малейших глубин:

$('input', $('#mydiv')).each(function () {
    console.log($(this)); //log every element found to console output
});

Второй параметр $('# mydiv'), который передается в jQuery 'input' Selector, является контекстом. В этом случае предложение each() будет перебирать все входные элементы в контейнере #mydiv, даже если они не являются прямыми дочерними элементами #mydiv.

Ответ 3

Если вам нужно циклически перебирать дочерние элементы:

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"));   

Примечание:В этом примере я показываю обработчики событий, зарегистрированные с помощью объекта.

Ответ 4

Это можно сделать так же. $('input', '#div').each(function () { console.log($(this)); //log every element found to console output });

Ответ 5

children() сам по себе является циклом.

$('.element').children().animate({
'opacity':'0'
});

Ответ 6

Я не думаю, что вам нужно использовать each(), вы можете использовать стандартный цикл for

var children = $element.children().not(".pb-sortable-placeholder");
for (var i = 0; i < children.length; i++) {
    var currentChild = children.eq(i);
    // whatever logic you want
    var oldPosition = currentChild.data("position");
}

таким образом, вы можете иметь стандартные функции цикла, такие как break и continue работы по умолчанию

Кроме того, отладка будет проще