22

我无法获取特定节点的内部文本。我已经添加了我正在使用的示例节点和我想出的 javascript。<span id="goal_left">3 goals lect</span>如果我将它记录到控制台,javascript 的工作原理就是返回它。如果我添加innerText到 javascript 示例中,它将不会向控制台返回任何内容。任何想法如何获取此文本?

html

<span id="goal_left">3 goals lect</span>

javascript:这些示例返回<span id="goal_left">3 goals lect</span>

document.getElementById("goal_left");

document.querySelectorAll("span#goal_left")[0];

javascript:这些示例不返回任何内容

document.getElementById("goal_left").innerText;

document.querySelectorAll("span#goal_left")[0].innerText;
4

3 回答 3

43

可能是最简单的方法:

document.querySelectorAll("span#goal_left")[0].firstChild.nodeValue;

虽然如果你总是想要返回的第一个节点,querySelectorAll()你可以简单地使用:

document.querySelector("span#goal_left").firstChild.nodeValue;

顺便说一句,我想任何实现的浏览器都querySelectorAll()可能实现textContent,给出:

document.querySelector("span#goal_left").textContent;

只是为了提供一个跨浏览器选项:

var textProperty = 'textContent' in document ? 'textContent' : 'innerText';
document.getElementById('goal_left')[textProperty]
于 2012-07-31T17:07:17.127 回答
2

innerHTML物业可能是您正在寻找的。它将 HTML 代码作为字符串保存在元素内。

于 2012-07-31T17:05:56.443 回答
-1

document.getElementById("goal_left").innerHTML 而不是 innerText。

此外,您可能想使用 jQuery 来操作 DOM 元素,它更容易且不易出错。

于 2012-07-31T17:09:47.257 回答