appendChild()不接受传递的字符串参数作为参数?

时间:2018-06-15 22:55:13

标签: javascript jquery html

我的代码是在单击“新建”按钮后在2个现有代码下添加另一个段落<p>hello</p>

错误必须是将onclick的值传递给函数或传递给createTextNodeappendChild()(不是正确使用的数据类型)功能等)。我知道这是因为函数本身工作正常,而不必将参数传递给createTextNode()而只是输入一个字符串。

<div id="div1">
    <p id="p1">This is a paragraph.</p>
    <p id="p2">This is another paragraph.</p>
</div>

<script>
    function saveSelection(selection) {
        var para = document.createElement("p3");
        var node = document.createTextNode(selection);
        para.appendChild(node);
        var element = document.getElementById("div1");
        element.appendChild(para);
    }
</script>

<button type="button" onclick="saveSelection("hello")">New</button>

旁注:如果你好奇,更广泛的目标是最终编写一个类似于this的程序。显然,我计划利用appendChildremoveChild,如果你知道一个更合适的方法来指出我会非常感激。

4 个答案:

答案 0 :(得分:1)

您没有正确解析

onclick="saveSelection("hello")"

应该是

onclick="saveSelection('hello')"

然后在这里

var para = document.createElement("p3");

元素应为p而不是p3

见下面的演示

function saveSelection(selection) {
  var para = document.createElement("p");
  var node = document.createTextNode(selection);
  para.appendChild(node);
  var element = document.getElementById("div1");
  element.appendChild(para);
}
<div id="div1">
  <p id="p1">This is a paragraph.</p>
  <p id="p2">This is another paragraph.</p>
</div>
<button type="button" onclick="saveSelection('hello')">New</button>

答案 1 :(得分:0)

在传递价值时,你在代码中犯了很简单的错误。

使用单引号('')。

而不是双引号(“”)

使用'hello'代替"hello"

简单!

答案 2 :(得分:0)

注意双重双引号。将“你好”改为单引号。

<button type="button" onclick="saveSelection('hello')">New</button>

答案 3 :(得分:0)

document.createElement("p3");

应该是

document.createElement("p");

"saveSelection("hello")"

应该是

"saveSelection('hello')"