【发布时间】:2016-03-10 22:03:24
【问题描述】:
我正在尝试使用document.evaluate 来查找与我的查询匹配的文本节点。我发现的问题是,使用我使用的 XPath,它没有找到跟随另一个元素的文本节点。例如,给定这些条件 (jsFiddle):
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)以找到两个匹配项?
【问题讨论】:
标签: javascript html xpath