leo*_*ios 2 javascript internet-explorer classname
以下javascript代码无法正常运行。(我使用的是IE9,不能使用其他浏览器或JQuery):
var elems = document.getElementsByClassName("EditableTextBox");
for (var i = 0; i < elems.length; i++) {
elems[i].className = "Zero";
}
Run Code Online (Sandbox Code Playgroud)
发生的情况是,只有某些具有className“ EditableTextBox”的元素被更改为className“ 0”,许多元素仍保留为className“ EditableTextBox”。没有其他代码可能会导致此问题。此代码是刷新屏幕之前我执行的代码的最后一部分。
我认为问题出在.getElementsByClassName找不到所有正确的元素,但是:
var elems = document.getElementsByClassName("EditableTextBox");
for (var i = 0; i < elems.length; i++) {
elems[i].value = "test";
}
Run Code Online (Sandbox Code Playgroud)
这段代码确实将所有正确元素的值更改为“ test”,因此.getElementsByClassName确实可以找到所有元素。
我不明白是什么引起了这里的问题。下面是我的解决方法,但是在这里有更多经验的人可以解释为什么第一段代码不起作用吗?谢谢。
如果有人感兴趣,我的解决方法:
var elems = document.getElementsByTagName("input");
for (var i = 0; i < elems.length; i++) {
if (elems[i].className == "EditableTextBox")
elems[i].className = "Zero";
Run Code Online (Sandbox Code Playgroud)
谢谢。
该getElementsByClassName仿佛回到现场设置,所以当你改变类组将立即被更新的任何项目,它会跳过对方项目。反向执行循环:
for (var i = elems.length - 1; i >= 0; --i) {
elems[i].className = "Zero";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3004 次 |
| 最近记录: |