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

---> スクリプトを実行すると、firebug でエラーが発生します。

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;

これにより、変数「strong」と DOM 要素の「innerHTML」プロパティが「name」の値に設定されます。代わりにこれが欲しいと思います:

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

<dd>あなたが作成するものも同じです。

于 2012-11-04T15:45:48.513 に答える
0

strongstring要素ではありません

クリック時にメソッドを呼び出したい場合は、関数参照を提供する必要があります。

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

      addStudent("new element",text here ",document.getElementsByClassName("Class")[0]);
     }
于 2012-11-04T15:47:28.713 に答える
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 に答える