Duplicar posible:
getElementsByTagName() equivalent for textNodesBuscar todos los nodos de texto en la página HTML
Para this question necesitaba encontrar todos los nodos de texto debajo de un nodo en particular. Yo puedo hacerlo de esta manera:
function textNodesUnder(root){
var textNodes = [];
addTextNodes(root);
[].forEach.call(root.querySelectorAll('*'),addTextNodes);
return textNodes;
function addTextNodes(el){
textNodes = textNodes.concat(
[].filter.call(el.childNodes,function(k){
return k.nodeType==Node.TEXT_NODE;
})
);
}
}
Sin embargo, esto parece poco elegante a la luz del hecho de que con XPath uno podría simplemente preguntar para .//text()
y hacerse con él.
¿Cuál es la forma más sencilla de obtener todos los nodos de texto bajo un elemento particular en un documento HTML, que funciona en IE9 +, Safari5 +, Chrome19 +, Firefox12 +, Opera11 +?
"Simplest" se define de forma general como "eficiente y corta, sin jugar al golf".
http: // st ackoverflow.com/questions/2579666/getelementsbytagname-equivalent-for-textnodes –
Aw, maldito. Gracias, Jack, busqué pero no pude encontrar esa pregunta. – Phrogz
Sí, no sé por qué no apareció en la barra lateral tampoco, pero lo encontré mientras hacía una búsqueda en Google :) –