javascript - 如何访问 DOM 中未包含在 HTML 标记中的文本

标签 javascript dom

使用 JavaScript,如何访问位于 DOM 中但未单独包装在标签中的文本。

例如:

<div class="container">
  <a href="home.html">Home</a> |
  <a href="abou.html">About</a> |
  <a href="cont.html">Contact</a> |
  <a href="misc.html">Misc.</a>
  CopyrightNot @ 2016
</div>

如何选择“CopyrightNot @ 2016”?

最佳答案

如果您要使用 JavaScript 访问的文本始终位于所有标记之后,也包含在 div.container 标记中,则使用以下内容:

document.querySelector('div.container').lastChild.textContent.trim()

使用querySelector方法访问div.container元素,然后访问lastChild该元素上的属性,它为您提供您正在寻找的 textNode。现在只需使用 textContent 属性获取该元素上的文本,最后使用 trim 方法去除前导空格和尾随空格以及换行符。

JSBin example.

<小时/>

同样,如果它位于所有其他标签之前,请使用 firstChild :

document.querySelector('div.container').firstChild.textContent.trim()

您可以使用 childNodes 访问 div.container 元素中的所有子节点、标签和文本。数组。

// for loop
var con = document.querySelector('div.container');
for ( ii = 0, len = con.childNodes.length; ii < len; ii += 1 ) {
  console.log(con.childNodes[ii].textContent.trim());
}

如果您知道文本在标签内的位置,例如第三个位置,那么它的索引将为2,您可以通过以下方式访问文本:

document.querySelector('div.container').childNodes[2].textContent.trim()

关于javascript - 如何访问 DOM 中未包含在 HTML 标记中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37446627/

相关文章:

javascript - 我如何绕过 firebase 在响应时给出的数组中的随机 id?

javascript - 在 JavaScript 中通过赋值声明变量类型的好处

javascript - Edge 中的 DOM API 问题

php - 仅获取 DOM xPath 查询的第一个结果

javascript - 从同一个类(class)中选择第一个 child 并添加一个类(class)名称

javascript - 使用 jQuery 追加带有子元素和类的元素

javascript - 使用 Angular js 检测 JS 对象的变化

javascript - 我如何使用操作和组件来处理 Ember 的客户端错误?

javascript - 使用 jQuery 获取 iframe 的 HTML 内容

javascript - 如何在不使用事件的情况下获取元素的 pageX 和 pageY