Usuwanie dzieci rodzica

0

o to fragment mojego kodu:

     		function zmiana(ctrl) {			
			switch(ctrl){
				case 1:
					createDiv(8);
					break;
				case 2:
					removeDiv();
					break;
			}
		}
		
		function createDiv(ile){
			var i;
			for(i = 0; i<ile; i++){
				var kawalek = document.createElement("div");
				document.getElementById('contener').appendChild(kawalek);
				kawalek.className = "kawalek";
			}
		}
		
		function removeDiv(){
			var paren = document.getElementById("contener");
			var childs = document.getElementsByClassName('kawalek');
			var i;
			for(i=0; i<childs.length; i++){
				paren.removeChild(childs[i]);
			}
		}

ctrl to liczba sterujaca podawana poprzez wcisniecie guzika.
Problem polega na tym, ze gdy tworza sie divy wszystko idzie jak po masle ale nie wszystkie zostaja usuniete po wywolaniu removeDiv... dlaczego?? przeciez pobieram wszyskie dzieci I w forze wszystkie je usuwam.

1

Nie usuwasz wszystkich, bo wraz z usuwaniem kolejnych elementów zmienia się zawartość childs.length (zmniejsza się) oraz zmieniają się indeksy dzieci, zrób po prostu:
http://codepen.io/anon/pen/WGGrvm

PS
I poćwicz angielski (a przynajmniej dodaj słownik do edytora) bo używasz nieistniejących słów.

PS2
Nie koduj na sztywno w funkcjach odwołań do elementów DOM - przekazuj je jako parametr, inaczej nie możesz użyć funkcji ponownie dla innego elementu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1