我的代码是在单击“新建”按钮后在2个现有代码下添加另一个段落<p>hello</p>
。
错误必须是将onclick
的值传递给函数或传递给createTextNode
或appendChild()
(不是正确使用的数据类型)功能等)。我知道这是因为函数本身工作正常,而不必将参数传递给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的程序。显然,我计划利用appendChild
和removeChild
,如果你知道一个更合适的方法来指出我会非常感激。
答案 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')"