修改类名后,节点引用将丢失

时间:2015-02-23 08:17:07

标签: javascript

通过node.className = ...

更改类名后,我丢失了对象引用
var nodeName = 'my_div';
var subNode = document.getElementById(nodeName);
var nodes = subNode.getElementsByClassName('one');
alert (nodes[0]); // OK - [object HTMLSpanElement]
nodes[0].setAttribute('class','zzz');
alert (nodes[0]); // Undefined

如何在变量中保存对象的引用?

1 个答案:

答案 0 :(得分:1)

因为getElementsByClassName()返回一个实时集合,这意味着对原始dom元素属性的任何更改都将反映在列表中。

您可以使用querySelectorAll()之类的方法返回非实时元素集

var nodes = subNode.querySelectorAll('.one');