strong crear html dom cross-browser textnode

html - crear - Cuando trabajo con nodos de texto, ¿debo usar el campo "data", "nodeValue", "textContent" o "wholeText"?



document.createtextnode javascript (1)

De todos estos, elegiría data : está definido para los nodos que implementan la interfaz CharacterData (solo Text y Comment ). Intentar acceder a esta propiedad para los demás da undefined .

nodeValue es esencialmente lo mismo que los data para los nodos de texto, pero también se define para los nodos de atributo y comentario. Y generalmente quiero que mis programas fallen temprano. )

textContent es, para mí, algo completamente diferente, ya que representa el contenido de texto de un nodo y sus descendientes . Esto, junto con wholeText , tal vez debería usarse más para recopilar textos de estructuras más complejas que un solo nodo de texto.

Dicho todo eso, textContent y wholeText se definieron en DOM Nivel 3 (= más moderno).

Posible duplicado:
¿Cómo recuperar el texto de un nodo de texto DOM?

En mis experimentos para manejar los observadores de mutación DOM noté que cuando el target es un nodo de texto, hay cuatro campos que contienen el nuevo texto del nodo.

  • data
  • nodeValue
  • textContent
  • wholeText

¿Existe una "mejor práctica" para cuál de estos campos debo usar?

¿Son algunos solo por compatibilidad con otros navegadores o estándares DOM más antiguos? ¿Hace una diferencia si estoy leyendo o modificando el texto? Si uno es mejor, ¿cuál es el propósito de los demás?