Показать сообщение отдельно
  #1 (permalink)  
Старый 29.12.2008, 15:19
Интересующийся
Отправить личное сообщение для korzhik Посмотреть профиль Найти все сообщения от korzhik
 
Регистрация: 14.07.2008
Сообщений: 25

Поиск элементов в контексте
Всем привет.
Начну сразу с примера.
Дано: 2 divа и в каждом еще 100 divов, то есть всего их 202, и в последнем еще 1 таблица.
структура примерно такая
div
 | ... 
 | div#100
    | - table
div
 | ... 
 | div#100
    | - table


Найти: $('div div') - правильный результат должен быть 200, и $('div div table') - результат соответственно 2.

Вообщем, интересует как правильно искать такие элементы.

первое, что пришло в голову было чтото вроде:
var a = [];
var obj = document.getElementsByTagName('div');
for (var h = 0, l = obj.length; h < l; h++) {    
      var el = obj[h].getElementsByTagName('div');      
      for (var j =0, l1 = el.length; j < l1; j++)
        a.push(el[j]);        
 }

почему это не работает, думаю понятно
Потом был вариант с индексом добавленных элементов, работает, но жутко медленно.
var a = document.getElementsByTagName('div'), t, b=[];
       var n = 0;
       var tt;
       while( t = a[n++] ) {
      		var g = t.getElementsByTagName('div');
      		var i = 0;
      		while( tt = g[i++] ){
      			if(!tt._)
      				b.push(tt);
      			tt._ = 1;
      		}
      	}


подскажите что-нибудь плз
Ответить с цитированием