Javascript 从Mozilla v21到IEv8的JS问题

Javascript 从Mozilla v21到IEv8的JS问题,javascript,Javascript,只是想知道是否有人可以用下面的javascript为我指出正确的方向。它呈现良好,在firefox中不会遇到任何错误,但进入ie8时没有收到任何错误,不会运行任何操作 不要在it人员身上花费太多时间,不过任何指点都将不胜感激。请参阅下面的代码 //resetting error messages function resetMessages() { //reset errors var errors = document.getElementsByClassName('error'); whil

只是想知道是否有人可以用下面的javascript为我指出正确的方向。它呈现良好,在firefox中不会遇到任何错误,但进入ie8时没有收到任何错误,不会运行任何操作

不要在it人员身上花费太多时间,不过任何指点都将不胜感激。请参阅下面的代码

//resetting error messages
function resetMessages() {
//reset errors
var errors = document.getElementsByClassName('error');
while (errors.length != 0){
    errors[0].className = 'hidden';
}
//reset messages
var messages = document.getElementsByClassName('message');
while (messages.length != 0){
    messages[0].className = 'hidden';
}
//reset highlights
var fields = document.getElementsByClassName('highlight');
while (fields.length != 0){
    fields[0].className = fields[0].className.replace('highlight', 'lowlight');
}

return true;
}

IE8不支持GetElementsByCassName方法。您可以使用(例如,
document.querySelector('.error')
)或us a for
getElementsByClassName

使用

document.querySelectorAll('.error')

.getElementsByClassName()最初返回了一个活动节点列表,这样可以避免您提到的无休止的循环,因为循环体将删除所讨论的类。不过,该方法不会返回活动列表。(我之所以说“最初”,是因为我相信DOM4规范将其更改为返回一个HTMLCollection。)@nnnnnn:你说得有道理,没有想到这一点。我将删除答案的这一部分。