如何迭代HTML元素中的所有属性?
我需要JavaScript代码遍历HTML元素中的填充属性。
这Element.attributes ref说我可以通过索引访问它,但没有指定是否得到很好的支持,可以使用(跨浏览器)。
或者其他方式? (不使用任何框架,如jQuery / Prototype)
这将工作在IE浏览器,Firefox和Chrome(有人可以testing其他人吗? – 谢谢,@Bryan):
for (var i = 0; i < elem.attributes.length; i++) { var attrib = elem.attributes[i]; console.log(attrib.name + " = " + attrib.value); }
编辑:IE浏览器迭代所有问题的DOM对象支持的属性,不pipe他们是否已经实际上已经在HTML中定义或不。
您必须查看attrib.specified
布尔属性,以确定该属性是否实际存在。 Firefox和Chrome似乎也支持这个属性:
for (var i = 0; i < elem.attributes.length; i++) { var attrib = elem.attributes[i]; if (attrib.specified) { console.log(attrib.name + " = " + attrib.value); } }
另一种方法是使用Array.from
将属性集合转换为数组:
Array.from(element.attributes).forEach(attr => { // process attr })