Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как создать теги вокруг найденных классов (https://javascript.ru/forum/dom-window/9346-kak-sozdat-tegi-vokrug-najjdennykh-klassov.html)

Black_Sun 11.05.2010 22:09

Как создать теги вокруг найденных классов
 
Вот такая ситуация,
<div class="first">
		<div class="second">
                 ТЕКСТ			
		</div>
		<span class="txt">ТЕКСТ</span>
		<span class="txt">ТЕКСТ</span>
</div>


Нужно с помощью javascript добавить вокруг ещё один div, т.е.
<div>
<div class="first">
......................................
</div>
</div>

Пробовал так
var a=document.getElementsByClassName('first')[0];
 test=document.createElement('div');
 test.innerHTML='<div>&nbsp;';
 a.parentNode.insertBefore(test,a);

 test2=document.createElement('div');
 test2.innerHTML='</div>&nbsp;';
 a.parentNode.insertBefore(test2,a.nextSibling);
не вышло, какой бы я не писал document.createElement он после innerHTML закрывает его и сами внутри innerHTML тоже закрывает, хелп.

В общей сложности нужно создать такой как бы слой для второго div, т.е. сначала слой-затем div-first-затем div-second

Octane 11.05.2010 22:48

var element = document.getElementsByClassName("first")[0];
var wrapper = document.createElement("div");
element.parentNode.insertBefore(wrapper, element);
wrapper.appendChild(element);


в IE есть специальный метод applyElement

Black_Sun 11.05.2010 23:08

Octane, кул, спс, но также нашёл как альтернитаву
var element = document.getElementsByClassName("first")[0];
var wrapper = document.createElement("div");

wrapper.innerHTML='<div>'+element.innerHTML+'</div>';

element.parentNode.insertBefore(wrapper, element);

element.parentNode.removeChild(element); //удаление двойника :)
но ваш лучше :)


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