3

我正在创建一个函数,它有一个贯穿特定 div 中每个标签的 for 循环。例如,这里是 div:

<div>
 <input id="inputid"></input>
 <a id="aid"></a>
 <div id="divid"></div>
</div>

javascript中是否有一个“for each tag in x”函数可以让我循环遍历它?请记住,我不能在 jquery 中执行此操作,并且每个标记都可能不同,如上所示。

4

3 回答 3

7

如果您想要包含在 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("*")可以采用如图所示的通配符,因此它返回节点中包含的所有元素,并且可以在任何元素上调用它以仅从包含该元素的元素中检索元素。

于 2012-11-28T08:05:17.840 回答
1

试试这个:

var div = getElementById('containerDivId');
for (var i = 0; i < div.childNodes.length; i++)
{
    console.log(div.childNodes[i]);
}
于 2012-11-28T08:02:49.597 回答
-1

我你想遍历所有孩子的所有标签(不仅仅是第一级孩子)

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});
      });
});
于 2012-11-28T08:08:50.013 回答