この質問では、特定のノードの下にあるすべてのテキストノードを見つける必要がありました。私はこのようにこれを行うことができます:
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()
。
IE9 +、Safari5 +、Chrome19 +、Firefox12 +、Opera11 +で機能する、HTMLドキュメントの特定の要素の下にあるすべてのテキストノードを取得する最も簡単な方法は何ですか?
「最もシンプル」とは、「ゴルフをせずに効率的で短い」と大まかに定義されています。