【发布时间】:2016-05-20 16:55:09
【问题描述】:
我只是想删除一类没有像 jQuery 这样的框架的一些元素。 首先我尝试使用 for(... in ...) 而不是将 ist 更改为 for(var i...) 但现在我发现即使直接选择也不起作用。
使用 jQuery 可以正常工作。但它是......让我们来解释一下 jQuery 的作用。
我的脚本:
[109] <script>
[110] var hidden = document.getElementsByClassName('hidden');
[111] console.log('Class "hidden" size: ' + hidden.length);
[112] console.log(hidden[0].tagName);
[113] console.log(hidden[1].tagName);
[114]
[115] hidden[0].className = '';
[116] hidden[1].className = '';
[117] </script>
控制台日志:
Class "hidden" size: 2
H1
FORM
Uncaught TypeError: Cannot set property 'className' of undefined(anonymous function) @ login.html:116
为什么我可以得到hidden[1] 的tagName 但不能改变它的className 而是hidden[0]。
当我将订单更改为
[115] hidden[1].className = '';
[116] hidden[0].className = '';
所以hidden[1] 在hidden[0] 之前它可以工作。
看起来var hidden = document.getElementsByClassName('hidden'); 将在第一个选定元素已更改并且元素的length 变小时后再次运行。
【问题讨论】:
标签: javascript arrays undefined classname