以下javascript代码无法正常工作。 (我使用IE9,并且不能使用不同的浏览器或JQuery的):更改className问题(javascript和IE)
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";
谢谢。
可能的重复[如何可以替换一个类与所有元素,只使用DOM?](http://stackoverflow.com/questions/16510973/how-can-i-replace-one-class-与另一个所有元素使用只是这个dom) – Anonymous 2015-06-18 15:08:50