以下 javascript 代码无法正常工作。(我使用的是 IE9,不能使用其他浏览器或 JQuery):
var elems = document.getElementsByClassName("EditableTextBox");
for (var i = 0; i < elems.length; i++) {
elems[i].className = "Zero";
}
发生的情况是,只有类名“EditableTextBox”的一些元素被更改为类名“零”,许多元素仍保留类名“EditableTextBox”。没有其他代码可能导致此问题;这段代码是我在刷新屏幕之前执行的最后一段代码。
我认为问题在于 .getElementsByClassName 没有找到所有正确的元素,但是:
var elems = document.getElementsByClassName("EditableTextBox");
for (var i = 0; i < elems.length; i++) {
elems[i].value = "test";
}
此代码确实将所有正确元素的值更改为“测试”,因此 .getElementsByClassName 确实可以正确找到所有元素。
我不明白是什么导致了这里的问题。我的解决方法如下,但是在这里有更多经验的人可以解释为什么第一块代码不起作用?谢谢你。
如果有人感兴趣,我的解决方法:
var elems = document.getElementsByTagName("input");
for (var i = 0; i < elems.length; i++) {
if (elems[i].className == "EditableTextBox")
elems[i].className = "Zero";
谢谢你。