我正在创建一个函数,该函数具有一个运行特定div中每个标记的for循环。例如,这里将是DIV:如何循环访问特定标签内的每个标签?
<div>
<input id="inputid"></input>
<a id="aid"></a>
<div id="divid"></div>
</div>
有没有在JavaScript中的“为每个标签在X”之类的功能,让我来遍历呢?请记住,我不能这样做在jQuery中,每个标签可能会有所不同,如上所示。
我正在创建一个函数,该函数具有一个运行特定div中每个标记的for循环。例如,这里将是DIV:如何循环访问特定标签内的每个标签?
<div>
<input id="inputid"></input>
<a id="aid"></a>
<div id="divid"></div>
</div>
有没有在JavaScript中的“为每个标签在X”之类的功能,让我来遍历呢?请记住,我不能这样做在jQuery中,每个标签可能会有所不同,如上所示。
如果您希望包含在专区内的所有元素(包括儿童的孩子,等...),你只想要元素(而不是其他类型的节点),你希望它在所有的浏览器,那么你可以使用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("*")
可以采取一个通配符如图所以它返回包含在所述节点中的所有元素,它可以被称为任何元件上只检索从含有元素中的元素。
谢谢,这就是我所追求的。 –
最后一点,如果您有时间,我可以使用if(allTags [i] .id!= null){}来确定标签是否有ID? –
@CaptainDando - 您可以使用if(allTags [i] .id){}'来检查有效的ID。它可能是'未定义'或一个空字符串,如果不存在,这将检查两者之一。 – jfriend00
试试这个:
var div = getElementById('containerDivId');
for (var i = 0; i < div.childNodes.length; i++)
{
console.log(div.childNodes[i]);
}
我你想通过所有FO关闭所有的孩子标签(不只是一级子女)
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});
});
});
为什么你不能做到这一点在jQuery的迭代? – yoavmatchulsky
这个项目给我的部分好处是学习javascript作为一个入口点.net语言或java和jquery太不相似了 –