19

我有一个带有 id 测试的 div

通过 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>

我在 javascript 函数中获取父 div id“test”。现在我想遍历测试 div 的内部 div(子 div),并一一获取每个 div 的 id 并通过 javascript 设置它们的样式。

对此有任何想法吗?

4

6 回答 6

37

试试这个

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

for( i=0; i< childDivs.length; i++ )
{
 var childDiv = childDivs[i];
}
于 2012-07-02T09:54:51.963 回答
12

您可以使用 jQuery .each() 函数循环遍历内部 div。以下示例执行此操作,并为每个内部 div 获取 id 属性。

$('#test').find('div').each(function(){
    var innerDivId = $(this).attr('id');
});
于 2012-07-02T09:54:36.033 回答
5

如果有人仍在寻找它,这就是解决方案

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-'));
于 2014-03-01T01:34:45.027 回答
0

您可以使用

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

每个()

这种方式例如:

$('[id^=test-]').each(function(){
    var atId = this.id;
    // do something with it
});​
于 2012-07-02T09:55:08.637 回答
0

您正在尝试做的是遍历 div 的直接后代#testdiv;您可以使用>后代选择器和 jQuery.each()迭代器来执行此操作。您还可以使用 jQuery.css().attr()方法分别设置样式和检索 id。

$("#test > div").each(function(index){
    var id = $(this).attr("id");
    $(this).css(/* apply styles */);
});
于 2012-07-02T09:55:32.513 回答
-1

使用 jQuery。

可以根据您的需要添加此代码:

$testDiv = ​$('div#test')​​​​​​​​​​​​.first();    
$('div', $testDiv).css("margin", '50px');​​​​
于 2012-07-02T09:57:00.773 回答