我正在创建一个函数,它有一个贯穿特定 div 中每个标签的 for 循环。例如,这里是 div:
<div>
<input id="inputid"></input>
<a id="aid"></a>
<div id="divid"></div>
</div>
javascript中是否有一个“for each tag in x”函数可以让我循环遍历它?请记住,我不能在 jquery 中执行此操作,并且每个标记都可能不同,如上所示。
我正在创建一个函数,它有一个贯穿特定 div 中每个标签的 for 循环。例如,这里是 div:
<div>
<input id="inputid"></input>
<a id="aid"></a>
<div id="divid"></div>
</div>
javascript中是否有一个“for each tag in x”函数可以让我循环遍历它?请记住,我不能在 jquery 中执行此操作,并且每个标记都可能不同,如上所示。
如果您想要包含在 div 中的所有元素(包括子项的子项等)并且您只想要元素(而不是其他类型的节点)并且您希望它在所有浏览器中工作,那么您可以getElementsByTagName("*")
像这样使用:
var allTags = document.getElementById('container').getElementsByTagName("*");
for (var i = 0, len = allTags.length; i < len; i++) {
// allTags[i] is an element within the container object
// allTags[i].id is the id of the element (if there is one)
}
document.getElementById('container')
只是获取容器元素的一些方法 - 您可以使用任何适合获取包含父元素的方法。
getElementsByTagName("*")
可以采用如图所示的通配符,因此它返回节点中包含的所有元素,并且可以在任何元素上调用它以仅从包含该元素的元素中检索元素。
试试这个:
var div = getElementById('containerDivId');
for (var i = 0; i < div.childNodes.length; i++)
{
console.log(div.childNodes[i]);
}
我你想遍历所有孩子的所有标签(不仅仅是第一级孩子)
jQuery(element).find('*').each( function (index,value) {
$.each(value.attributes, function(i, attrib){
var name = attrib.name,
value = attrib.value;
// do whatever you wann do
console.log({ attributeName : name, attributeValue: value});
});
});