[英]Find text node after a node with XPath
我正在尝试使用document.evaluate
查找与我的查询匹配的文本节点。 我发现的问题是,使用的XPath找不到在另一个元素之后的文本节点。 例如,鉴于以下条件( jsFiddle ):
的HTML
<div><p>$100</p></div>
<p>Test test <span>test</span> $100 test</p>
Java脚本
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表达式更改为//*[text()[contains(.,"$")]]
因为这样会选择具有包含$
符号的文本子节点的元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.