Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > разобрать ноду


Автор: VKoresh 5.5.2009, 18:11
 Господа, столкнулся с такой проблемой.
При исполнении execCommand("FontName", false, 'bla') как и положено создаются font-ы.
Получаем что-то вроде 
Код

<font class="bla">word1 word2 word3</font>


Потом выделяем word2 и снова кастуем на него execCommand.
Получаем
Код

<font class="bla">word1 <font class="bla">word2</font> word3</font>



Скажите, можно ли, и если можно, то как привести к такому виду - 
Код

<font class="bla">word1 </font><font class="bla">word2</font> <font class="bla">word3</font>



Т.е. чтобы не вставлять новую ноду внутрь существующей, а как бы разобрать то что есть и вставить.

Заранее спасибки smile

Автор: Aliance 7.5.2009, 12:55
Советую пользоваться функцией appendChild(). Можно написать свою функцию, которая будет вставлять первый раз в то место, куда нужно и возвращать то, что вставила - а дальше при вставке проверять, если parentNode == то, что вернула в тот раз, то вставлять в нее же. Это как пример.

P.S.: тег font изжил себя smile

Автор: VKoresh 12.5.2009, 11:34
Aliance, То ли я чего-то не понял в этой жизни, то ли.. smile 
appendChild() тут смысла нет вкручивать, как я понимаю, т.к. он вставляет чайлда в конец.
Пришла на ум идея забабахать регексп, который бы менял innerHTML, но.. "Если вы решили решить проблему с помощью регекспа, то у вас будет два проблемы - та что была и регексп  smile  "(с), поэтому пока ищу более другие варианты.

Уважаемый, а не могли бы вы примерчик привести smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)