JS 中的 createTextNode 在 Chrome 中不起作用

Posted

技术标签:

【中文标题】JS 中的 createTextNode 在 Chrome 中不起作用【英文标题】:createTextNode in JS is not working in Chrome 【发布时间】:2013-05-09 02:35:14 【问题描述】:

我正在尝试一个简单的练习,我想在其中添加一个

,由 javascript 生成到 id 为“target-area”的 div。 问题是 Chrome 拒绝注入这一段并给我一个错误: Uncaught TypeError: Object # has no method 'createTextNode'

代码如下:

<html>
<head>
    <title>JS</title>

</head>
<body>
    <div id="target-area">
        <p id="tagline">Hello World!</p>
    </div>

</body>
<script type="text/javascript">

        // store the target area to a variable to keep things neat
        var targetArea = document.getElementById("target-area");
        // create our <p> element
        var p = document.createElement("p");
        // create a text node inside the <p>, note that we're using a variable "p" here
        var snippet = p.createTextNode("this was a generated paragraph");
        // insert our generated paragraph into the DOM
        targetArea.appendChild(snippet);

    </script>
</html>

谢谢!

【问题讨论】:

【参考方案1】:

document 具有 createTextNode 属性,而不是刚刚创建的元素

所以基本上你的代码应该是这样的..

    // store the target area to a variable to keep things neat
    var targetArea = document.getElementById("target-area");
    // create our <p> element
    var p = document.createElement("p");
    // create a text node inside the <p>, note that we're 
    //  using a variable "p" here
   var snippet = document.createTextNode("this was a generated paragraph");
    // insert our generated paragraph into the DOM
    p.appendChild(snippet);
    targetArea.appendChild(p);

Check Fiddle

【讨论】:

那么我应该如何修改代码呢?我尝试了一切,甚至更多,我正在从一本 JS 书中复制它......【参考方案2】:

只是出于好奇。

为什么不简单呢?

// store the target area to a variable to keep things neat
var targetArea = document.getElementById("target-area");
// create our <p> element
var p = document.createElement("p");
// create a text node inside the <p>, note that we're 
//  using a variable "p" here
var snippet = document.createTextNode("this was a generated paragraph");
// insert our generated paragraph into the DOM
targetArea.appendChild(snippet);

【讨论】:

以上是关于JS 中的 createTextNode 在 Chrome 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

javascript 在 createTextNode 中用 <br> 替换 \n

如何使用带有 createTextNode() 的列表的第一个子项

JS执行保存在数据库中的JS代码

js中的DOM操作汇总

js中的DOM操作汇总

使用 createTextNode() 但我需要向其添加 HTML 标记 (JavaScript/JQuery)