] Object.prototype в JavaScript

I есть код 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 (и предположительно более ранней версии) - эти браузеры выдают сообщение «Object doesn»t поддерживают это свойство или метод "
Единственное, что мне не нравится, это то, что объекты уже были созданы, когда я определил функцию прототипа ...
Избегая определения функции как ... ну, "нормальной" функции и передачи элемента в качестве аргумента, есть ли способ заставить это работать в IE7 и ниже?

6
задан Niet the Dark Absol 18 November 2010 в 01:51
поделиться