Подтвердить что ты не робот

При работе с текстовыми узлами я должен использовать поле "data", "nodeValue", "textContent" или "wholeText"?

Возможный дубликат:
Как получить текст DOM-текста node?

В моих экспериментах по обработке наблюдателей мутаций DOM я заметил, что когда target является текстом node, все четыре поля содержат новый текст node.

  • data
  • nodeValue
  • textContent
  • wholeText

Есть ли "лучшая практика" для каких из этих полей я должен использовать?

Некоторые только для совместимости с другими браузерами или более старыми стандартами DOM? Неважно, читаю ли я или изменяю текст? Если лучше, какова цель других?

4b9b3361

Ответ 1

Из всего этого я бы выбрал data: он определен для узлов, реализующих интерфейс CharacterData​​strong > ( текст и комментарий). Попытка получить доступ к этому свойству для остальных дает undefined.

nodeValue по существу совпадает с data для текстовых узлов, но на самом деле определен как для узлов атрибута, так и для комментариев. И я обычно хочу, чтобы мои программы терпели неудачу раньше. )

textContent для меня нечто совершенно иное, поскольку оно представляет текстовое содержимое node и его потомков. Это, наряду с wholeText, возможно, следует использовать больше для сбора текстов из более сложных структур, чем один текст node.

Сказано, что textContent и wholeText были определены в DOM Level 3 (= более современно).