如何循环div的子div并获取子div的id?
我有一个带有id测试的div
通过foreach循环,我在测试div中创建了一些内部div。 所以它变成了这样。
我在javascript函数中获得父div id“test”。 现在我想循环遍历测试div的内部div(子div)并逐个获取每个div的id并通过javascript设置它们。
关于这个的任何想法?
您可以使用jQuery .each()函数循环遍历内部div。 下面的示例执行此操作,并且对于每个内部div,它获取id属性。
$('#test').find('div').each(function(){ var innerDivId = $(this).attr('id'); });
试试这个
var childDivs = document.getElementById('test').getElementsByTagName('div'); for( i=0; i< childDivs.length; i++ ) { var childDiv = childDivs[i]; }
如果有人仍然在寻找它,这是解决方案
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-'));
您可以使用
$('[id^=test-]')
和每个()
这种方式例如:
$('[id^=test-]').each(function(){ var atId = this.id; // do something with it });
你要做的是循环遍历#test
div的直接后代div; 你可以使用>
descendant选择器和jQuery .each()
迭代器来完成这个。 您还可以使用jQuery .css()
和.attr()
方法分别设置样式和检索id。
$("#test > div").each(function(index){ var id = $(this).attr("id"); $(this).css(/* apply styles */); });
使用jQuery。
此代码可以根据您的需求添加:
$testDiv = $('div#test').first(); $('div', $testDiv).css("margin", '50px');