Показать сообщение отдельно
  #4 (permalink)  
Старый 15.06.2010, 11:01
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

я получил все узлы тега лейбл через querySelectorAll
дальше провёл итерацию по этому массиву, и если выполнялось условие, заносил узлы в свой массив
потом я прошёлся по полученному массиву ещё раз (почему за один проход нельзя - потому-что первая функция лежит в библиотеке )
//это в первой функции
	if(eval(clause)){
elements[i].style.color="green";


					console.log("adding element "+(elements[i][this.checkBy]||elements[i].getAttribute(this.checkBy))+"\n to index "+p);//пишет в консоль
					this.results[p].push(elements[i]);
                                       console.log("now length of "+p+" is: "+this.results[p].length);
                                        console.log(this.results[p].toSource());
					
					
					}

а потом , в другом месте
function lbltofield(mass,val){

console.log("mass length: "+mass.length);
	for (var i in mass){
            console.log( "got id :"+mass[i].getAttribute("for"));
		document.getElementById(mass[i].getAttribute("for")).value=val;
}
}

сначала вызывается первая функция
потом на массивы, сформированные ей натравливается вторая

в консоли :
Код:
adding element el1 to index d
now length of d is: 1
[({})]
adding element el2 to index c
now length of c is: 1
[({})]
adding element el3 to index d
now length of d is: 2
[({}), ({})]

mass length: 1
got id :fn_11121
mass length: 0
TypeError: mass[i].getAttribute is not a function { message="mass[i].getAttribute is not a function", more...}
Ответить с цитированием