Обновление JavaScript TextNode
Если у меня есть
var t = document.createTextNode(text)
parent.appendChild(t);
Можно ли просто обновить содержимое t
?
Я хотел бы изменить текст внутри parent
без использования removeChild
, createTextNode
а также appendChild
, Зачем мне это нужно вместо того, чтобы просто использовать innerHTML
? Потому что я не хочу обновлять содержимое элемента с помощью HTML-кода и text
может содержать специальные символы, такие как <или &, которые должны анализироваться TextNode
DOM методы.
Спасибо,
Том
4 ответа
Помните, что смежные текстовые узлы свернуты в один (так как на самом деле нет способа различить два смежных текстовых узла).
Содержимое текстового узла может быть обновлено с помощью его nodeValue
собственность (см. MDC).
Поскольку текстовый узел по определению не может содержать никакой разметки, нет innerHTML
имущество.
Если вы сохраняете экземпляр объекта 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";