JavaScript span.appendChild()从控制台

时间:2018-01-09 21:56:48

标签: javascript jquery html html5 tampermonkey

我是HTML和JavaScript的新手,但我遇到了这个问题。

我有以下代码段:

<div data-contents="true">

    <div class="" data-block="true" data-editor="369vc" data-offset-key="e371k-0-0">

        <div data-offset-key="e371k-0-0" class="_1mf _1mj">

            <span data-offset-key="e371k-0-0">

                <span data-text="true">TEXT HERE</span>

            </span>

        </div>

    </div>

</div>

我试图在&#34; TEXT HERE&#34;在控制台中使用以下命令(在this Stack Overflow thread上找到):

span = document.getElementById("data-text");
txt = document.createTextNode("TEXT HERE");
span.appendChild(txt);

然而,当我运行该命令时,我得到的全部是Uncaught TypeError: Cannot read property 'appendChild' of null at <anonymous>:3:6

我已经读过因脚本运行之前未定义的元素而导致的内容,因此无法将文本分配给它。即使网站已经加载,我还不清楚为什么它不会运行。有任何想法吗?我希望最终将其挂钩到网页上加载的按钮,而不是在加载时自动运行,如果有意义的话。

注意:我没有从头开始创建网站。这是TamperMonkey在Facebook上使用的脚本,因此我无法将其永久加载到网页中。

1 个答案:

答案 0 :(得分:1)

你这叫:

span = document.getElementById("data-text");

但是没有任何名为data-text的ID。

将代码更改为:

span = document.querySelector("[data-text]");

或者将html更改为:

<span id="data-text" data-text="true">TEXT HERE</span>
  

请注意id="data-text"这就是getElementById正在寻找的内容。