Форум hotibo.ru

Сайты - по стандартам, но не стандартные сайты!






#1 24.12.2011 12:52

dumpEX
Новичок
Зарегистрирован: 24.12.2011
Сообщений: 2

Как вырезать все теги через DOM

Здравствуйте. У меня такая проблема. Мне необходимо в JS-объекте сначала вырезать все дочерние для

теги вместе с атрибутами из xhtml-страницы, а потом вернуть их на свои места. Регулярные выражения использовать не имею возможноcти, нужен DOM.
Вроде бы возникла идея сделать это через цикл, вглубь childNodes, начиная от window.document.childNodes[0].childNodes[1] (т.е. от body), но всё равно до конца сообразить как это лучше сделать не могу sad

Нет на форуме

 

#2 24.12.2011 14:48

DAREDEVIL
Новичок
Зарегистрирован: 11.09.2011
Сообщений: 11

Re: Как вырезать все теги через DOM

честно говоря, не пойму смысла данной операции, но может поможет вот это:

newNode = node.cloneNode(bool)
    Создает newNode, как копию узла node. Если bool=true, newNode будет содержать также все дочерние узлы оригинального node.

Нет на форуме

 

#3 24.12.2011 15:03

dumpEX
Новичок
Зарегистрирован: 24.12.2011
Сообщений: 2

Re: Как вырезать все теги через DOM

Спасибо, но каким образом тогда вырезать все теги? Смысл операции прост - избавиться от тегов, потом расстанивать переносы в тескте и вернуть теги на место. Меня интересует только первый вариант - утаскивание всех тегов в массив.

Нет на форуме

 

#4 25.12.2011 22:09

DAREDEVIL
Новичок
Зарегистрирован: 11.09.2011
Сообщений: 11

Re: Как вырезать все теги через DOM

тогда может так:
1. сначала копируете все внутренности боди предложенной мною функцией,
2. потом делаете document.body.innerHTML=""; (все исчезает)
3. вставляете скопированное с помощью функции

node.appendChild(newNode)
    Добавляет newNode в качестве дочернего по отношению к узлу node и делает его последним дочерним узлом.

(все появится)

или так:
1. document.body.style.display='none'; (все исчезнет)
2. document.body.style.display='block'; (все появится)

Нет на форуме

 

#5 25.12.2011 22:16

DAREDEVIL
Новичок
Зарегистрирован: 11.09.2011
Сообщений: 11

Re: Как вырезать все теги через DOM

помоему я вас не так понял smile
теги и атрибуты вам надо все в кучку складывать?

Нет на форуме

 

#6 27.12.2011 02:44

MT
Опытный
Откуда: Moscow
Зарегистрирован: 23.11.2009
Сообщений: 241
Вебсайт

Re: Как вырезать все теги через DOM

Чтобы расставить переносы в тексте, вам нужны не элементы, а текстовые узлы, которые можно получить, сначала получив все дочерние элементы BODY при помощи getElementsByTagName('*') и потом пробежавшись по каждому узлу каждого элемента полученного массива с проверкой nodeName на равенство '#text', а после манипуляций с текстом из nodeValue каждого из текстовых узлов присвоить новое значение текстовому узлу путём изменения того же nodeValue.


браузер | блог

Нет на форуме

 

Board footer