连接元素

时间:2012-11-04 15:42:46

标签: javascript

<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)

3 个答案:

答案 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]);
     }