我想找到文本片段"这是用于测试选择器"来自以下使用纯JavaScript的DOM结构。
<html>
<body>
<div class="breadcrumb">
<a title=" Home" href="http://www.google.com/"> Home</a>
<span class="arrow">»</span>
<a title="abc" href="http://www.google.com/">test1</a>
<span class="arrow">»</span><a title="xyz" href="http://www.google.com/">test2</a>
<span class="arrow">»</span>
This is for testing selector
</div>
</body>
</html>
答案 0 :(得分:1)
这应该可以解决问题。
document.getElementsByClassName('breadcrumb')[0].lastChild;
请注意,这仅适用于文本&#34;这是用于测试选择器&#34;仍然是breadcrumb
答案 1 :(得分:0)
答案 2 :(得分:0)
我认为可能有一个更简单的解决方案,但这也有效:
var element = document.getElementsByClassName("breadcrumb")[0];
var children = element.childNodes;
for (i in children) {
if (children[i] instanceof Text) {
content = children[i].textContent;
if (content.trim() != "") {
alert(content);
}
}
}
&#13;
<body>
<div class="breadcrumb">
<a title=" Home" href="http://www.google.com/"> Home</a>
<span class="arrow">»</span>
<a title="abc" href="http://www.google.com/">test1</a>
<span class="arrow">»</span><a title="xyz" href="http://www.google.com/">test2</a>
<span class="arrow">»</span> This is for testing selector
</div>
</body>
&#13;
此代码遍历div的子代,并搜索文本节点。它会提醒那个不空的人。
(仅用铬测试)
答案 3 :(得分:0)
如果您要选择的文字始终位于div.breadcrumb
标记中包含的所有标记之后(如您的示例所示),请使用以下内容:
document.querySelector('div.breadcrumb').lastChild.textContent.trim()
使用querySelector
方法访问div.breadcrumb
元素,然后访问该元素的lastChild
属性,该属性为您提供了您正在寻找的textNode。现在只需使用textContent
属性获取该元素的文本,最后使用trim
方法去除前导和尾随空格和行返回。