Показать сообщение отдельно
  #8 (permalink)  
Старый 29.06.2012, 23:48
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

вообщем очень было бы не плохо иметь подобную реализацию:
NodeList.prototype.querySelector = function( selector ) {

    var elem, listLength = this.length;

    for( var i = 0; i < listLength; i++ ) {
        if ( elem = this[ i ].querySelector( selector ) ) {
            return elem;
        }
    }

    return null;
}

NodeList.prototype.querySelectorAll = function( selector ) {

    var result = [], // Instead the Array, use NodeList
        listLength = this.length;

    for( var i = 0; i < listLength; i++ ) {
        result = result.concat( Array.prototype.slice.call( this[ i ].querySelectorAll( selector ), 0 ) );
    }

    return result;
}

// но назначение прототипов объекту NodeList эфекта никакого не дает
// тоесть сделав такую хрень:
alert( document.querySelectorAll('div').querySelectorAll ); // получим undefined
// браузеры не добавляют пользовательский метод экземпляру NodeList
// хотя тестил я тока в опере.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием