Показать сообщение отдельно
  #5 (permalink)  
Старый 02.12.2013, 16:08
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от 1lider Посмотреть сообщение
Добрый день!

У нас имеется ...
Добрый...не у нас, а у вас...

<script>
var d = document;

function del_blocks() {
	var main_block = d.getElementById("container");
	var blocks = main_block.children;
	for (i=blocks.length - 1; i >= 0; i--) {
		if (i <= 2) break;
		main_block.removeChild(blocks[i]);
	}
}
</script>
<div id='container'>
   <div class='blocks'>block_1</div>
   <div class='blocks'>block_2</div>
   <div class='blocks'>block_3</div>
   <div class='blocks'>block_4</div>
   <div class='blocks'>block_5</div>
</div><input type="button" value="Delete" onClick="del_blocks()">


Сообщение от 1lider Посмотреть сообщение
Пробовал такой вариант, но где-то ошибка:

var countBlocks = document.getElementById('container').children.length;
if(countBlocks > 3) {
	var hide_blocks = document.getElementById('container').children;
	for(var i=2;i<countBlocks;i++) {
		hide_blocks[i].parentNode.removeChild(hide_blocks[i]);
	}
}
в вашем примере вы пытаетесь обратиться к элементам которые уже удалены...удаляете 3 элемент, остается 4 элемента, далее удаляете 4 элемент, остается 3 элемента, далее вы пытаетесь удалить 5 элемент, которого естественно уже нет...

Последний раз редактировалось lord2kim, 02.12.2013 в 16:16.
Ответить с цитированием