更改类名问题(javascript和IE)
以下javascript代码无法正常工作。(我正在使用IE9,无法使用其他浏览器或JQuery):更改类名问题(javascript和IE),javascript,internet-explorer,classname,Javascript,Internet Explorer,Classname,以下javascript代码无法正常工作。(我正在使用IE9,无法使用其他浏览器或JQuery): var elems=document.getElementsByClassName(“EditableTextBox”); 对于(var i=0;i
var elems=document.getElementsByClassName(“EditableTextBox”);
对于(var i=0;i
发生的情况是,只有一些类名为“EditableTextBox”的元素被更改为类名为“零”,许多元素仍保留类名为“EditableTextBox”。没有可能导致此问题的其他代码;这段代码是我在刷新屏幕之前执行的最后一段代码
我认为问题在于.GetElementsByCassName找不到所有正确的元素,但是:
var elems = document.getElementsByClassName("EditableTextBox");
for (var i = 0; i < elems.length; i++) {
elems[i].value = "test";
}
var elems=document.getElementsByClassName(“EditableTextBox”);
对于(var i=0;i
此代码会将所有正确元素的值更改为“test”,因此.getElementsByClassName会正确查找所有元素
我不明白是什么导致了这里的问题。下面是我的解决方法,但是有更多经验的人可以解释为什么第一块代码不起作用吗?多谢各位
如果有人感兴趣,我的解决方法是:
var elems = document.getElementsByTagName("input");
for (var i = 0; i < elems.length; i++) {
if (elems[i].className == "EditableTextBox")
elems[i].className = "Zero";
var elems=document.getElementsByTagName(“输入”);
对于(变量i=0;i
谢谢。GetElementsByCassName似乎返回了一个活动集,因此当您更改任何项目的类别时,该集将立即更新,并将跳过其他项目。相反,请执行循环:
for (var i = elems.length - 1; i >= 0; --i) {
elems[i].className = "Zero";
}
另一种选择是:
while(list.length!=0) {
list[0].className = 'Zero';
}
这样你就知道你不会错过任何元素。不错的一个!它很有效,而且很清楚为什么不起作用。非常感谢。可能是重复的
while(list.length!=0) {
list[0].className = 'Zero';
}