2

ユーザーのアクションに応じて動的にフォームを動的に作成しています。これは、入力ボックスと各インスタンスの 2 つの「ボタン」です​​。各インスタンスは一意の div タグでラップされます。

私が成功せずにやろうとしたのは、「ボタン」を動的に作成するときに、そのインスタンスの div を含む入力変数を使用して関数をアタッチすることです。これは簡単な抜粋です:

  var newDivClass = document.getElementById("instance"+1);
  button1.innerHTML = "<a href=\"#\" onclick=\"buttons("+newDivClass+");\" id=\"button1\"> Button1 </a>";

  function buttons(selected) {
        //I want this to select the first instance 
        //of button1 found within div newDivClass
        selected.getElementById("button1");
        //I also tried
        //this.getElementById("button1");
        //selected.getChildren[0]; 
  }

問題は、 newDivClass を実際の関数に渡すことにあるようです。

4

2 に答える 2

2

オブジェクト自体への参照ではなく、オブジェクトの名前を文字列として渡すことが目的の場合は、 newDivClass 変数を引用符で囲む必要があります。

button1.innerHTML = "<a href=\"#\" onclick=\"buttons('"+newDivClass+"');\" id=\"button1\"> Button1 </a>";

そうしないと、ボタン関数のスクリプトが、dom の最上位にある ID "instance*n*" を持つオブジェクトを操作しようとします。

于 2010-12-31T17:59:55.887 に答える
0

最初の子を取得するには、firstChildプロパティを使用できます。

于 2010-12-31T17:51:25.617 に答える