迭代HTMLElement属性时出了什么问题

时间:2015-11-06 07:09:43

标签: javascript

在迭代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);ab

有人能告诉我我的代码有什么问题吗?

0 个答案:

没有答案