在迭代attributes
的{{1}}时出现问题。这是一个简单的函数,创建一个HTMLElement包含3个自定义属性:
HTMLElement
所以function createAttrs() {
var div = document.createElement('div'),
a = document.createAttribute('a'),
b = document.createAttribute('b'),
c = document.createAttribute('c');
a.nodeValue = 'a';
b.nodeValue = 'b';
c.nodeValue = 'c';
div.setAttributeNode(a);
div.setAttributeNode(b);
div.setAttributeNode(c);
return div;
};
var element = createAttrs();
等于element
。
然后我像这样迭代<div a='a' b='b' c='c'></div>
:
element.attributes
非常奇怪的是,devTool of Chrome只打印[].forEach.call(element.attributes, function(attr) {
console.log(attr.name);
element.removeAttribute(attr.name);
});
和a
!
c
在哪里?
之后我在devTool中键入b
,并打印element
。
看起来迭代器只是跳过属性<div b='b'></div>
!
但是当我删除b
时,devTool按预期打印element.removeAttribute(attr.name);
,a
,b
。
有人能告诉我我的代码有什么问题吗?