我有一些JavaScript代码定义了一个函数getElementsByAttribute
如下:Object.prototype中在JavaScript
Object.prototype.getElementsByAttribute = function(attr) {
var children = this.all || this.getElementsByTagName('*'),
ret = [], i, c;
for(i=0; i<children.length; i++) {
c = children[i].getAttribute(attr);
if(typeof c == "string" && c != "")
ret.push(children[i]);
}
return ret;
}
这个工作在我测试的所有浏览器,除了IE 7(大概低) - 这些的browers抛出“对象不支持这个属性或方法。”
我可以想到的唯一不同的是,当我定义了原型函数时,对象已经创建...
将函数定义为...的好办法,“正常”函数并将元素作为参数传递,是否有任何方法可以在IE7及以下版本中实现这一功能?
谢谢 - 好东西我不经常使用这些东西,并且已经有了后备! – 2010-11-18 02:01:34
但他并没有试图添加DOM元素的原型,而是添加了Object的原型,完全不同。 – 2012-12-18 10:02:38
@torazaburo:是的,但他期望DOM元素继承Object.prototype。他们不。 – SLaks 2012-12-18 14:09:42