Javascript,如何选择使用DOM xpath之间的东西

时间:2013-04-10 14:04:22

标签: javascript dom xpath

如何在<br>标签之间选择一些内容,使用xpath或建议其他解决方案。 到目前为止这是我的代码,我选择<p>,但我需要<br>标记之间的内容:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>some text <br>select this </br>and not this</p>
<div id="insert"></div>
<script>
data = document;
var headings = data.evaluate("//p", data, null, XPathResult.ANY_TYPE, null);
var thisHeading = headings.iterateNext();
var selectedText = "Selected: <br>";
while (thisHeading) {
    selectedText += thisHeading.textContent + "<br>";
    thisHeading = headings.iterateNext();
}
document.getElementById('insert').innerHTML = selectedText;
</script>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

假设<br>p中唯一的标记。你可以在每个<br>标签上拆分以获得一系列元素。

注意:</br>无效。

var strings = 'some text <br>select this <br/>and not this'.split(/<br\/?>/i);
alert(strings.length); //3

答案 1 :(得分:1)

</br>不是有效的HTML,因为br元素是一个空元素。

就XPath而言,您可以使用路径//p/br[1]/following-sibling::node()[1][self::text()]来选择字符串值为select this的文本节点,并选择一个空节点集,以防第一个{ {1}}子节点不是文本节点。