У меня есть HTML, который был отформатирован с помощью contenteditable div. Я хочу сделать его более сжатым, современным HTML. Я могу легко заменить любые теги b, strong, em, font и т. Д. И заменить их на пролеты, но результат создал «сложены» элементы.jquery - консолидировать сложные элементы DOM
Например, я мог бы иметь:
<span style="font-weight:bold">
<span style="text-decoration:underline">some text</span>
</span>
И я хочу видеть:
<span style="font-weight:bold; text-decoration:underline">some text</span>
Твердая часть ему необходимо будет обращаться:
<span style="font-weight:bold">
<span style="text-decoration:underline">some text</span> not underlined
</span>
Я я довольно много искал и думал об этом, но не нашел ничего разумного.
Вы хотите сделать это на лету в javascript? –
@JamesMontagne Да. Пользователь вводит текст в div «contenteditable = true», и я хочу его очистить до его отправки. Я не хочу, чтобы HTML-файл div был чистым, просто нужно сделать это, как только пользователь будет выполнен, и это событие, которое я уже захватил. – jopke
@ jopke - У меня было аналогичное требование, когда contenteditable div должен был быть очищен кнопкой отправки. Чтобы упростить вещи, я бы установил useCSS на false, очистил html суп (посмотрите на решение 3 по адресу: http://stackoverflow.com/questions/16226671/consolidate-stacked-dom-formatting-elements-contenteditable-div) и затем используйте regex для быстрого преобразования тегов b/span/s/u/i/em в соответствующий CSS equiv. Обратите внимание, что Solution3 будет заказывать форматирование для всех узлов (так что вы можете изменить порядок форматирования на то, как вы хотите обрабатывать через регулярное выражение). –