27.06.2011, 02:45
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Изменить содержимое текстового узла
<div id="div">Text</div>
<script>
textNode= document.getElementById("div").firstChild;
textNode.nodeValue= '<b>' + textNode.nodeValue + '</b>'; // выведет "<b>Text</b>"
</script>
Как сделать так, чтобы текст был жирным, а не чтобы выводился тег?
Последний раз редактировалось trikadin, 27.06.2011 в 02:49.
|
|
27.06.2011, 03:58
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
для того чтобы преобразовать HTML-строку в DOM-объекты, присвойте временному объекту DOM(создается при помощи document.createElement) свойство innerHTML, а затем перебрав все его childNodes поместите их в необходимое место, например с помощью appendChild
|
|
27.06.2011, 04:05
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Спасибо, Gvozd)
Поясню. У меня есть объект. Мне нужно его вставить в определённое место текстового узла. Совсем не факт, что в начало. Как вставить в середину?
Причём заранее неизвестно, где элемент находится, есть ли у него сестринские элементы и т.д.
Последний раз редактировалось trikadin, 27.06.2011 в 04:14.
|
|
27.06.2011, 04:20
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Мне пришло в голову это:
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);//удаляем исходный узел. Получилось, что мы заменили исходный текст на два текста с элементом между ними.
Короче можно?
Последний раз редактировалось trikadin, 27.06.2011 в 07:59.
|
|
27.06.2011, 04:25
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
да, вроде особо короче и не сделаешь
|
|
27.06.2011, 04:31
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Ясно... Ну ладно.
|
|
14.11.2011, 03:43
|
Аспирант
|
|
Регистрация: 11.11.2011
Сообщений: 96
|
|
Сообщение от trikadin
|
<div id="div">Text</div>
<script>
textNode= document.getElementById("div").firstChild;
textNode.nodeValue= '<b>' + textNode.nodeValue + '</b>'; // выведет "<b>Text</b>"
</script>
Как сделать так, чтобы текст был жирным, а не чтобы выводился тег?
|
Об этом вы спрашивали в июне сего года.
Теперь вы профессор (или уже нинзя?), поздравляю!
|
|
14.11.2011, 03:48
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
observer, а я быстро учусь. Если вы лишены этого качества - простите, ничем не могу помочь) Кстати, я предлагаю вам ещё попытаться поддеть меня по поводу моего возраста - ведь мне 16) Правда, мне вряд ли удастся сравниться с таким взрослым вами?
И кстати, мне приятно) Вы не поленились просмотреть список моих тем - а это какое-никакое, но признание.
|
|
|
|