как петля над дочерними divs div и получить идентификаторы дочерних divs?

У меня есть div с id test

и через цикл foreach я создаю некоторые внутренние div внутри тестового div. Так оно и будет.

<div id="test">
<div id="test-1"></div>
<div id="test-2"></div>
<div id="test-3"></div>
<div id="test-4"></div>
</div>

Я получаю родительский div id "test" в функции javascript. Теперь я хочу пройти через внутренние divs (дочерние div) тестового div и получить идентификатор каждого div один за другим и создать их через javascript.

Любая идея об этом?

Ответ 1

Вы можете перемещаться по внутренним divs с помощью функции jQuery.each(). Следующий пример делает это, и для каждого внутреннего div он получает атрибут id.

$('#test').find('div').each(function(){
    var innerDivId = $(this).attr('id');
});

Ответ 2

Попробуй это

var childDivs = document.getElementById('test').getElementsByTagName('div');

for( i=0; i< childDivs.length; i++ )
{
 var childDiv = childDivs[i];
}

Ответ 3

Здесь решение, если кто-то все еще ищет его

function getDivChildren(containerId, elementsId) {
    var div = document.getElementById(containerId),
        subDiv = div.getElementsByTagName('div'),
        myArray = [];

    for(var i = 0; i < subDiv.length; i++) {
        var elem = subDiv[i];
        if(elem.id.indexOf(elementsId) === 0) {
            myArray.push(elem.id);
        }
    }
    return myArray;
}
console.log(getDivChildren('test', 'test-'));

Ответ 4

Вы можете использовать

$('[id^=test-]')

и каждый()

таким образом, например:

$('[id^=test-]').each(function(){
    var atId = this.id;
    // do something with it
});​

Ответ 5

То, что вы пытаетесь сделать, - это прохождение прямых div-потомков div #test; вы сделали бы это с помощью селектора > потомков и итератора jQuery .each(). Вы также можете использовать методы jQuery .css() и .attr() для стилизации и получения идентификатора соответственно.

$("#test > div").each(function(index){
    var id = $(this).attr("id");
    $(this).css(/* apply styles */);
});

Ответ 6

Используйте jQuery.

Этот код может быть добавлен к вашим потребностям:

$testDiv = ​$('div#test')​​​​​​​​​​​​.first();    
$('div', $testDiv).css("margin", '50px');​​​​