Обновление JavaScript TextNode - PullRequest
2 голосов
/ 05 мая 2009

Если у меня есть

var t = document.createTextNode(text)
parent.appendChild(t);

Можно ли просто обновить содержимое t?

Я бы хотел изменить текст внутри parent без использования removeChild, createTextNode и appendChild. Зачем мне это нужно вместо использования innerHTML? Поскольку я не хочу обновлять содержимое элемента с помощью HTML-кода, а text может содержать специальные символы, такие как <или &, которые следует анализировать с помощью методов <code>TextNode DOM.

Спасибо,
Том

Ответы [ 3 ]

11 голосов
/ 05 мая 2009

Имейте в виду, что смежные текстовые узлы свернуты в один (поскольку на самом деле нет способа различить два смежных текстовых узла).

Содержимое текстового узла можно обновить с помощью его свойства nodeValue (см. MDC ).

Поскольку текстовый узел по определению не может содержать никакой разметки, свойство innerHTML отсутствует.

2 голосов
/ 05 мая 2009

Если вы сохраняете экземпляр объекта TextNode (t в вашем примере кода), вы можете изменить содержимое, используя различные функции, такие как replaceData (), substringData () и т. Д.

См. Эту страницу для хорошей ссылки: http://msdn.microsoft.com/en-us/library/ms535905(VS.85).aspx#

1 голос
/ 05 мая 2009
parent.innerText = text;
...