无法获取getElementsByClassName的长度

时间:2015-06-11 17:25:32

标签: javascript

我非常困惑。我正在尝试使用纯JS来测试是否在带有.example实例的页面上有类名.example的任何元素但我无法获得一致的结果......

<script>
var example = document.getElementsByClassName('example');

console.log( example ); 
// gives [],
            0:div.example
            1:div.example
            2:div.example
            length:3

console.log(example.length);
// gives 0

 console.log(example[0])
// gives undefined
</script>

我的电脑有什么奇怪的事情,或者我错过了什么?我该如何访问长度属性?

1 个答案:

答案 0 :(得分:0)

我测试了控制台,你必须在div之前定义脚本。 这是两个方案检查你的控制台,第一个将给出undefined。

<script>
    var example = document.getElementsByClassName('example');

console.log( example ); 

console.log(example.length);

console.log(example[0])
</script>

<div class="example"></div>
<div class="example"></div>
<div class="example"></div>
<div class="example"></div>

这个在加载元素后定义脚本标记的那个,我得到了一致的结果

<div class="example"></div>
<div class="example"></div>
<div class="example"></div>
<div class="example"></div>

<script>
    var example = document.getElementsByClassName('example');

console.log( example ); 

console.log(example.length);

console.log(example[0])
</script>

javascript标签应该在底部声明,因为它处理你的html元素的操作,你需要等待直到元素被加载,因此在最后声明脚本标签, 因为css必须在顶部声明,因为元素从那些css声明中调整它们的设计!