2009-03-25 2 views
63

Есть ли способ изменить значение DOM textNode в веб-браузере?Изменить textNode value

Я специально хочу, чтобы увидеть, если я могу изменить существующий узел, а не создания новый.

Чтобы уточнить, мне нужно сделать это с помощью Javascript. Весь текст в браузере хранится в #textNodes, которые являются дочерними узлами других узлов HTML, но не могут иметь дочерние узлы.

Как указано ниже, содержимое может быть изменено путем установки свойства nodeValue этих объектов.

+0

Пример HTML и что вы хотели бы изменить? Вы хотите сделать это с помощью javascript? – shahkalpesh

ответ

94

Если у вас есть конкретный узел (типа #text) и хотите, чтобы изменить его значение, которое вы можете использовать nodeValue свойство:

node.nodeValue="new value"; 

Примечание:

InnerText (и, возможно, TextContent) вернет/установит как текущий узел, так и все тексты узлов-потомков, и, возможно, это не будет поведение, которое вы хотите/ожидаете.

+1

Да, nodeValue идеально подходит для этого. innerText и textContent различаются в этом отношении: IE (который создал innerText) не поддерживает его на #text-узлах (так как нет никаких дочерних узлов для текстурирования), тогда как textContent предназначался для использования на обоих узлах #Element AND #text. –

+4

Существует также «данные» как короткий синоним «nodeValue» в тексте (а также CDATASection и комментарий). – bobince

+0

nodeValue - тот, который мне нужен. По какой-то причине я думал, что он доступен только для чтения, но, похоже, работает на FF3 и IE7. Благодаря! – levik

-4

Я считаю, что innerHTML используется для этого ... Опять же, это не W3C одобрил ... но это работает ...

node.innerHTML="new value"; 
+1

+1 для рабочего решения. nodeValue не позволяет мне заменить содержимое элемента – petermeissner

+3

Вы должны * никогда не использовать 'innerHTML', поскольку он обрабатывает код как текст как при чтении *, так и * в записи. – John

+2

@petermeissner: Это не отвечает на вопрос. Вы должны установить 'nodeValue' в текстовом узле, а не в его родительском элементе. –

Смежные вопросы