У меня есть контент-доступный DIV, который связан/синхронизирован обратно в текстовое поле.
Контекстно-зависимый DIV - это песочница бесплатно для всех, которая будет создавать элементы форматирования и т.д. при их вызове. Однако это часто приводит к беспорядочным сложным элементам.
Я хотел бы иметь возможность очистить код до того, как форма textarea будет отправлена на сервер.
В результате можно сделать что-то вроде следующего:
<div>
<b>
<i>
Hel
</i>
<i>
l
</i>
</b>
<i>
<b>
o World!
</b>
</i>
</div>
Что идеально было бы преобразовать в:
<div>
<b>
<i>
Hello World!
</i>
</b>
</div>
Если бы я ходил (рекурсивно) через childNodes div, я мог бы, вероятно, отслеживать форматы (tagName.toUpperCase() == {'B','I' ....} )
//или делать document.queryCommandState
, в течение которых я мог бы сделать document.execCommand('removeFormat',false,null)
на selectNode(thenode)
.
Тем не менее, я немного потерял то, как я могу отслеживать соседние узлы в форматах.
В качестве справочного материала я недавно сделал для разбора DOM, чтобы удалить форматирование из тегов IMG: http://jsfiddle.net/tjzGg/
NB: Это аналогичный вопроs > jquery - консолидировать сложные элементы DOM, но речь идет о консолидации строк стиля useCSS
в один основной стиль. Причина этого другого вопроса заключается в том, что я хочу консолидировать текст с общим стилем, но искусственно разделять несколько элементов из-за того, как текст был отформатирован. Если вы используете контентный div и индивидуально жирный один символ за раз, вы получите один символ на элемент.