<script>
document.getElementsByClassName("student")[0].onclick = addStudent("new element",text here ",document.getElementsByClassName("Class")[0]);
function addStudent(name,text,hendle)
{
var div=document.createElement("div");
var dt=document.createElement("dt");
var strong=document.createElement("strong").innerHTML = name;
var dd=document.createElement("dd").innerHTML = text;
dt.appendChild(strong);
div.appendChild(dt);
div.appendChild(dd);
div.setAttribute("class","student");
hendle.appendChild(div);
}
</script>`
---&GT;当我运行脚本时,我在firebug上收到错误:
NS_ERROR_XPC_BAD_CONVERT_JS: Could not convert JavaScript argument arg 0 [nsIDOMHTMLElement.appendChild]
[Break On This Error]
dt.appendChild(强);
---&GT;而且这个脚本不起作用..脚本位置在页面的末尾。 怎么解决? (我只是开始学习javascript)
答案 0 :(得分:1)
此语句不执行代码假定的操作:
var strong=document.createElement("strong").innerHTML = name;
将DOM元素的变量“strong”和“innerHTML”属性设置为“name”的值。我想你想要这个:
var strong = document.createElement("strong");
strong.innerHTML = name;
您创建的<dd>
相同。
答案 1 :(得分:0)
使用这些,您可以将分配给innerHTML
的值分配给变量。
var strong=document.createElement("strong").innerHTML = name;
var dd=document.createElement("dd").innerHTML = text;
您需要将元素存储在变量中,然后应用.innerHTML
var strong=document.createElement("strong");
strong.innerHTML = name;
var dd=document.createElement("dd");
dd.innerHTML = text;
FWIW,我会像这样重写这段代码:
function addStudent(name, text, hendle) {
var div = hendle.appendChild(document.createElement("div"));
div.classname = "student";
div.appendChild(document.createElement("dt"))
.appendChild(document.createElement("strong")).innerHTML = name;
div.appendChild(document.createElement("dd")).innerHTML = text;
}
答案 2 :(得分:0)
strong
string
不是元素
如果你想在点击时调用一个方法,你应该提供函数参考。
document.getElementsByClassName("student")[0].onclick = function(){
addStudent("new element",text here ",document.getElementsByClassName("Class")[0]);
}