如何迭代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 })