Изменить содержимое текстового узла
<div id="div">Text</div> <script> textNode= document.getElementById("div").firstChild; textNode.nodeValue= '<b>' + textNode.nodeValue + '</b>'; // выведет "<b>Text</b>" </script> Как сделать так, чтобы текст был жирным, а не чтобы выводился тег? |
для того чтобы преобразовать HTML-строку в DOM-объекты, присвойте временному объекту DOM(создается при помощи document.createElement) свойство innerHTML, а затем перебрав все его childNodes поместите их в необходимое место, например с помощью appendChild
|
Спасибо, Gvozd)
Поясню. У меня есть объект. Мне нужно его вставить в определённое место текстового узла. Совсем не факт, что в начало. Как вставить в середину? Причём заранее неизвестно, где элемент находится, есть ли у него сестринские элементы и т.д. |
Мне пришло в голову это:
function(insertNode, textNode, insertPoint) { fr= document.createDocumentFragment(); fr.appendChild(document.createTextNode(textNode.nodeValue.substr(0, insertPoint)); // вставляем первую часть текстового узла fr.appendChild(insertNode);// вставляем сам узел fr.appendChild(document.createTextNode(textNode.nodeValue.substr( insertPoint)) //вставляем вторую часть. textNode.parentNode.insertBefore(fr, textNode); // вставляем получившуюся хрень textNode.parendNode.removeChild(textNode);//удаляем исходный узел. Получилось, что мы заменили исходный текст на два текста с элементом между ними. Короче можно? |
да, вроде особо короче и не сделаешь
|
Ясно... Ну ладно.
|
Цитата:
Теперь вы профессор (или уже нинзя?), поздравляю! |
observer, а я быстро учусь. Если вы лишены этого качества - простите, ничем не могу помочь) Кстати, я предлагаю вам ещё попытаться поддеть меня по поводу моего возраста - ведь мне 16) Правда, мне вряд ли удастся сравниться с таким взрослым вами? :D
И кстати, мне приятно) Вы не поленились просмотреть список моих тем - а это какое-никакое, но признание. :) |
Часовой пояс GMT +3, время: 13:52. |