0
我试图使用document.evaluate
来查找与我的查询匹配的文本节点。我发现的问题是,在我使用的XPath中,它没有找到跟随另一个元素的文本节点。例如,给定这些条件(jsFiddle):使用XPath在节点后查找文本节点
HTML
<div><p>$100</p></div>
<p>Test test <span>test</span> $100 test</p>
的Javascript
var item,
indx = 0,
items = document.evaluate('//*[contains(text(),"$")]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
while (item = items.snapshotItem(indx++)) {
if (item.nodeName !== 'SCRIPT') {
console.log(item.textContent);
}
}
此XPath仅找到的第一个$
,第二未发现因为在该<span>
的中间。
所以我的问题是如何改变JavaScript(不是HTML)来找到两个匹配?
我试图改变我分享的小提琴,我看到这个错误:'不是有效的XPath表达式' – Mottie
我试过''* [contains(。,“$”)]''两个元素*,但*如果使用'document',则返回'html'元素,并切换到'document.body'返回最外层的包装器,这不是最优的。 – Mottie
对不起,我忘了关闭''',现在编辑和纠正。 –