javascript - 创建跨度并附加文本

标签 javascript html

我正在尝试创建跨度并将分割字符串作为每个跨度内的字符附加。因此,考虑到下面的消息,它会类似于 <span>t</span><span>h</span>等等...

由于某种原因,当我附加到文档正文时,我收到此错误。为什么?

Uncaught TypeError: Cannot read property 'appendChild' of null

<!doctype html>
<html>
  <head>

    <script type="text/javascript">

            scramble();

            function scramble () {                  
                var message = "this is a message";
                for (var i = 0; i < message.split("").length; i++) {
                    var letter = document.createElement('span');
                    letter.innerHTML = message.split("")[i];
                    document.body.appendChild(letter);
                    //document.getElementById("body").appendChild(letter);
                }
            }               
            function log (w) {
                console.log(w);
            }


    </script>
</head>
<body>      
</body>
</html>

我也尝试过document.getElementById("body").appendChild(letter);出现同样的错误。

堆栈跟踪:

 Uncaught TypeError: Cannot read property 'appendChild' of null
 myFunc
 (anonymous function)

最佳答案

尝试将 JavaScript 放在底部(body 标记下方或内部的任意位置)。

或者如果您没有 jQuery,请使用它:

document.addEventListener("DOMContentLoaded", function(event) { 
  //do work
});

或者如果你有 jQuery :

$( document ).ready(function() {
    //do work
});
调用 scramble() 时,

document.body 仍然不存在。

<小时/>

引用文献:

document.ready without jQuery

关于javascript - 创建跨度并附加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28733123/

相关文章:

javascript - 是否可以通过 support/index.js 在 Cypress 上仅运行特定测试?

javascript - 传递给 fn.apply 的标准默认第一个参数

javascript - 平移手势悬停 HTML 元素

javascript - 即使在 javascript 中有 onload 事件,如何阻止 Canvas Image 消失?

javascript - 使用 JQuery 从串联输入值的字符串中搜索并返回 JSON 文件值

html - 如何使用 <table>、<tr>、<td> 和 <div> 标签制作此表格?

javascript - 如何在纯 JavaScript 中创建严格的 4 位 PIN 输入?

javascript - NextJS,Express,WebSocket 握手期间出错 : Unexpected response code: 200

javascript - 在 Math.pow 运算中获取 NaN,第二个参数为十进制值

javascript - 如何将JavaScript变量传递给g:remoteFunction的 “update”属性?