Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как вывести всех детей? (https://javascript.ru/forum/events/18212-kak-vyvesti-vsekh-detejj.html)

AquaGen 22.06.2011 04:49

Как вывести всех детей?
 
Сабж, как это сократить?
for (var i=0;i!=$(this).children().length;i++) {
if (i==1) document.write($(this).children().next().attr('id'));
						if (i==2) document.write($(this).children().next().next().attr('id'));
						if (i==3) document.write($(this).children().next().next().next().attr('id'));
						if (i==4) document.write($(this).children().next().next().next().next().attr('id'));
						if (i==5) document.write($(this).children().next().next().next().next().next().html());
						if (i==6) document.write($(this).children().next().next().next().next().next().next().html());
						if (i==7) document.write($(this).children().next().next().next().next().next().next().next().html());
						if (i==8) document.write($(this).children().next().next().next().next().next().next().next().next().html());
						if (i==9) document.write($(this).children().next().next().next().next().next().next().next().next().next().html());
						if (i==10) document.write($(this).children().next().next().next().next().next().next().next().next().next().next().html());
					 }

NoResponse 22.06.2011 06:50

я фреймворки не очень хорошо знаю, но возможно сработает вот так
if (i>0)
  if (i<5) {
    document.write($(this).children()[i].attr('id'));
  }else if (i<11){
    document.write($(this).children()[i].html());
  }
}

kobezzza 22.06.2011 08:22

Кошмар какой-то) тут можно сделать простую рекурсию и код сократить до 1-й строчки) и фреймворки для такой задачи тож моно спокойно не юзать)

AquaGen 22.06.2011 10:07

document.write($(this).children()[i].attr('id'));

не работает

nikita.mmf 22.06.2011 11:04

for ( var child = this.firstChild, k = 0; child; ) {
	if ( child.nodeType == 1 ) {
		if ( k > 0 && k < 5 ) {
			document.write( child.id );
		} else if ( k < 11 ) {
			document.write( child.innerHTML );
		}
		k++;
	}
	child = child.nextSibling;
}

nikita.mmf 22.06.2011 11:05

NoResponse, вместо
$(this).children()[i].attr('id')

в jQuery надо писать
$(this).children().eq(i).attr('id')

AquaGen 22.06.2011 13:27

спасибо, работает :)

NoResponse 22.06.2011 17:01

nikita.mmf
вот оно как
спасибо, буду знать


Часовой пояс GMT +3, время: 19:19.