如何用xpath选择内部子项?

时间:2013-03-21 16:27:56

标签: javascript xpath

我在页面中有以下html:

<p>foo
<br>bar
<!--additional br elements of variable number-->
<br>https://example.com
<!--additional br elements of variable number-->
<br>baz
</p>

链接以纯文本显示,我需要将其链接。

这不会产生任何匹配:

document.evaluate( '//*[contains(text(),"https")]' ,document, 
    null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ).singleNodeValue;

如果我使用'//text()[contains(.,"https")]',我会获得整个文本,但不会引用我可以修改的DOM元素(用于在其周围添加<a>元素,以便可以点击。)

如何以我可以修改它的方式选择包含此纯文本URL的元素?

2 个答案:

答案 0 :(得分:0)

/p/text()[3]

这是我的第一个答案。

答案 1 :(得分:0)

似乎'//p/text()[contains(.,"https")]/..'可用于选择p元素,然后在p的innerHTML上进行正则表达式搜索和替换将完成此过程。