NodeList.length始终返回0

时间:2014-11-12 18:31:50

标签: javascript nodelist

我有一个由

创建的NodeList对象
var buttons = document.getElementsByName("signupButton");

console.log(buttons);

打印

[item: function]
0: button.btn.btn-warning.btn-lg
1: button.btn.btn-warning.btn-lg
2: button.btn.btn-warning.btn-lg
length: 3
__proto__: NodeList

但是buttons.length正在打印​​0.这里发生了什么?

1 个答案:

答案 0 :(得分:3)

这种情况正在发生,因为在执行JS时尚未加载DOM。它出现在控制台中的原因是因为chrome或者firefox会在DOM更改时更新控制台,实质上会改变控制台中的输出。

为了实现这一点,您有两种选择:

  • 为DOM加载时注册一个事件处理程序并执行它 代码然后。

    document.addEventListener('DOMContentLoaded', function(){ // the code //make AJAX request when button is clicked var buttons = document.getElementsByName("signupButton"); });

  • 在结束标记之前移动此脚本标记,以确保DOM在执行时已加载。

    </body> <script> // the code </script>