繁体   English   中英

使用XPath在节点之后查找文本节点

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM