无法通过简单的JavaScript原型方法

时间:2010-11-11 20:42:41

标签: javascript

我写了一些JavaScript代码。它以这种方式向NodeList类型添加新函数:

NodeList.prototype.forEach = function(func) {
var len = this.length
for(var i=0;i<len;i++) func(this[i])
}

它被用在其他地方:

document.getElementsByTagName("fieldset").forEach(disappearFields)

一切都很简单。

它在chrome中运行良好,但firefox出错:

  

document.getElementsByTagName(“fieldset”)。forEach不是函数   [打破此错误] document.getElementsByTagName(“fieldset”)。forEach(disappearFields)

disappearFields功能很短:

function disappearFields(what) {
what.style.display = "none"
}

我在谷歌寻求任何帮助,但根据这些信息我的代码应该正常工作。我自己无法应付。任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

HTMLCollection.prototype.forEach = function(func) {
var len = this.length
for(var i=0;i<len;i++) func(this[i])
}

FireFox将document.getElementsByTagName("fieldset")识别为HTMLCollection

https://developer.mozilla.org/en/DOM/HTMLCollection

我认为Safari认为它只是一个NodeList,IE只是一个对象。