我正在尝试使用JavaScript(不使用jQuery)获取带有特定类名的所有元素列表。 因此,我使用getElementsByClassName()函数如下:
var expand_buttons = document.getElementsByClassName('expand');
console.log(expand_buttons, expand_buttons.length, expand_buttons[0]);
请注意,我的页面上有三个带有类“expand”的锚元素。此console.log()输出结果:
[] 0 undefined
接下来,只是为了好玩,我将expand_buttons放入了它自己的数组中,如下所示:
var newArray = new Array(expand_buttons);
console.log(newArray, newArray.length);
这突然输出。
[NodeList[3]] 1
我可以通过节点列表单击并查看页面上三个“expand”锚元素的属性。值得注意的是,我能够在w3schools测试页面中使我的代码工作。
可能值得注意的是,我的document.getElementsByName实际上确实会输出一个元素数组(到控制台),但当我询问它的长度时,它告诉我是0。同样,如果我按照正常情况下使用array_name[0]
来访问数组元素,它会输出'undefined',尽管在将对象打印到控制台时清楚地存在一个元素。
有没有人知道这可能是为什么?我只想循环遍历DOM元素,而且目前避免使用jQuery,因为我正在练习使用原生JavaScript编写代码。
谢谢,
ParagonRG