此问题在此处已有答案:
getElementsByTagName() equivalent for textNodes(7个回答)
两年前关闭。
对于这个问题,我需要找到一个特定节点下的所有文本节点。我可以这样做:
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;
})
);
}
}
字符串
然而,这似乎并不优雅,因为使用EQUIPONE可以简单地查询.//text()
并完成它。
在HTML文档中获取特定元素下的所有文本节点的最简单方法是什么,适用于IE9+,Safari5+,Chrome19+,Firefox12+,Opera11+?
- “最简单”的定义是“高效、简短、不打高尔夫球”。
2条答案
按热度按时间f45qwnt81#
使用
createTreeWalker
是从DOM查询多个节点的一种非常有效的方法。字符串
注:一个更完整的答案与多个例子可以在这里找到:getElementsByTagName() equivalent for textNodes
t98cgbkg2#
字符串