我有一些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