0
<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>`

---> 当我运行脚本时,萤火虫出现错误:

NS_ERROR_XPC_BAD_CONVERT_JS: Could not convert JavaScript argument arg 0         [nsIDOMHTMLElement.appendChild]
[Break On This Error]   

dt.appendChild(强);

---> 而且这个脚本也不起作用..脚本位置在页面的末尾。如何解决?(我才开始学习 javascript)

4

3 回答 3

1

此语句不执行您的代码假定的操作:

var strong=document.createElement("strong").innerHTML = name;

这会将 DOM 元素的变量“strong”和“innerHTML”属性设置为“name”的值。我想你想要这个:

var strong = document.createElement("strong");
strong.innerHTML = name;

<dd>您创建的也是如此。

于 2012-11-04T15:45:48.513 回答
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;
}
于 2012-11-04T15:45:24.523 回答
0

strong不是string元素

如果你想在点击时调用一个方法,你应该提供函数参考。

document.getElementsByClassName("student")[0].onclick = function(){

      addStudent("new element",text here ",document.getElementsByClassName("Class")[0]);
     }
于 2012-11-04T15:47:28.713 回答