Ich habe einige JavaScript-Code, getElementsByAttribute
eine Funktion wie folgt definiert:Object.prototype in 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;
}
Diese in allen Browsern funktioniert ich getestet haben, mit Ausnahme des Internet Explorer 7 (und vermutlich niedriger) - diese browers throw "Objekt unterstützt diese Eigenschaft oder Methode nicht."
Das einzige, was ich denke, dass es nicht so ist, dass die Objekte bereits erstellt wurden, als ich die Prototyp-Funktion definiert ...
Shrot der Definition der Funktion als ... nun, ein "normales" Funktion und Weitergabe des Elements als Argument, gibt es eine Möglichkeit, dies in IE7 und darunter zu arbeiten?
Danke - Gut, dass ich dieses Zeug nicht oft benutze und es gibt schon Fallbacks! –
Aber er versucht nicht, den Prototyp von DOM-Elementen hinzuzufügen, er fügt dem Prototyp von Object hinzu, ganz anders. –
@torazaburo: Ja, aber er erwartet, dass DOM-Elemente "Object.prototype" erben. Sie nicht. – SLaks