Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Вставить элемент пред другим элементом? (https://javascript.ru/forum/events/23813-vstavit-ehlement-pred-drugim-ehlementom.html)

Dudo4nick 07.12.2011 13:22

Вставить элемент пред другим элементом?
 
Здравствуйте!
Вот такой html
<div id="tree">
 <div>node</div>
 <div>node</div>
 <div>node</div>...
 </div>


Надо добавить span перед вложенными div'ами. Юзал, insertBefore, но, очевидно, делаю что-то не так:

var elems = document.getElementById("tree").getElementsByTagName("div");
var num = elems.length;

for(var i=0; i<num; i++) {
	plus = document.createElement('span');
	plus.innerHTML = '+';
			
	elems[i].insertBefore(plus,elems[i]);
	
}


Вот это самое
elems[i].insertBefore(plus,elems[i])
не работает. Зато работает
elems[i].insertBefore(plus,elems[i].firstChild);
Но это не то, что мне нужно. Получается
<div>
<span>+</span>
node
</div>

А надо
<span>+</span><div>
node
</div>

ksa 07.12.2011 13:37

Цитата:

Сообщение от Dudo4nick
очевидно, делаю что-то не так

Да, не так... :) Делай вот ткак

<script type="text/javascript">
function Go() {
	var op=document.getElementById("tree");
	var od=op.getElementsByTagName("div");
	var	plus;
	var i;
	for (i=0; i<od.length; i++) {
		plus=document.createElement('span');
		plus.innerHTML = '+';
		op.insertBefore(plus,od[i]);
	};
};
</script>
<div id="tree">
	<div>node 1</div>
	<div>node 2</div>
	<div>node 3</div>
</div>
<input type='button' value='Go' onclick='Go()' />

devote 07.12.2011 13:43

<html>
<head></head>
<body>
<div id="tree"> 
 <div>node</div> 
 <div>node</div> 
 <div>node</div>... 
 </div>


<script type="text/javascript">
var elems = document.getElementById("tree").getElementsByTagName("div"); 
var num = elems.length; 
  
for(var i=0; i<num; i++) { 
    plus = document.createElement('span'); 
    plus.innerHTML = '+'; 
              
    elems[i].parentNode.insertBefore(plus,elems[i]); 
      
}
</script>
</body>
</html

devote 07.12.2011 13:45

ksa,
Пока мой инет висел как последняя кака, ты уже успел чиркнуть ответ =))) Как жеж меня достал этот ADSL :-E

ksa 07.12.2011 13:46

devote, кто смел - тот два съел! :D

devote 07.12.2011 13:49

ksa,
ну я зато не переписывал его код полностью. просто добавил parentNode :p

ksa 07.12.2011 13:50

Цитата:

Сообщение от devote
ну я зато не переписывал его код полностью.

Т.е. ты это представляешь как плюс? :lol:

devote 07.12.2011 13:51

ksa, да я такой :D


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