Otra solución nativa JS que puede ser útil para los elementos "complejas" o anidadas es utilizar NodeIterator. Ponga NodeFilter.SHOW_TEXT
como el segundo argumento ("whatToShow"), e itere solo sobre el nodo de texto children del elemento.
var root = document.getElementById('...'),
iter = document.createNodeIterator (root, NodeFilter.SHOW_TEXT),
textnode;
while (textnode = iter.nextNode()) {
// do something with the text node
}
También puedes usar TreeWalker
. La diferencia entre los dos es que NodeIterator
es un iterador lineal simple, mientras que TreeWalker
le permite navegar a través de hermanos y ancestros también.
esta pregunta es más o menos idéntica a http://stackoverflow.com/questions/3172166/getting-the-contents- of-a-element-without-its-children - vea esas respuestas para una versión JS simple de la respuesta de James – Mala