Обновление JavaScript TextNode

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

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

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

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

Спасибо,
Том

4 ответа

Решение

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

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

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

parent.innerText = text;

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

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

В приведенном ниже примере кода «Старое значение» текстового узла перезаписывается «Новым значением».

      const textNode = document.createTextNode("Old Value");
parent.appendChild(textNode);

textNode.nodeValue = "New Value";
Другие вопросы по тегам