У меня есть некоторый код JavaScript, который определяет функцию getElementsByAttribute
следующим образом:
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;
}
Это работает во всех браузерах, в которых я тестировал, кроме Internet Explorer 7 (и предположительно ниже) - эти браузеры выдают «Объект не поддерживает это свойство или метод».
Единственное, что я могу думать о том, что это не нравится, это то, что Объекты уже были созданы, когда я определил функцию-прототип ...
Чтобы определить функцию как ... ну, "нормальную" функцию и передать элемент в качестве аргумента, есть ли способ заставить это работать в IE7 и ниже?