Возможный дубликат:
эквивалент getElementsByTagName() для textNodes
Для этот вопрос Мне нужно было найти все текстовые узлы под определенным node. Я могу сделать это так:
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;
})
);
}
}
Однако это кажется неэлегантным в свете того, что с XPath можно просто запросить .//text()
и сделать с ним.
Самый простой способ получить все текстовые узлы под определенным элементом в документе HTML, который работает на IE9 +, Safari5 +, Chrome19 +, Firefox12 +, Opera11 +?
"Простейший" определяется свободно как "эффективный и короткий, без игры в гольф".