2010-12-31 8 views
2

私は、動的にユーザーの操作に従ってフォームを作成しています。これは、各インスタンスの入力ボックスと2つの「ボタン」です​​。各インスタンスは一意のdivタグでラップされます。Javascriptを使用してサブ要素にアクセスするにはどうすればよいですか?

私が成功しなかったのは、「ボタン」を動的に作成して、そのインスタンスの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を渡すことに問題があるようです。

答えて

2

あなたの目的は、文字列ではなく、オブジェクト自体への参照などのオブジェクトの名前を渡すことであれば、あなたはnewDivClass変数の周りを囲む引用符を持っている必要があります:

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

そうでない場合は、スクリプトをあなたのボタン機能では、domのトップレベルにid "instance * n *"のオブジェクトを操作しようとしています。

+0

あなたが提案した変更を加え、オブジェクトをボタンに渡しました。しかし、私はまだオブジェクトのプロパティのいずれにもアクセスできません。 \tアラート(selected.hasChildNodes());たとえば、動作しません。 – slimbo

+0

Ah。私の変更は、名前を文字列として渡して関数内で評価した場合にのみ機能します。単にボタンを渡してみましたか(これは)?これは、新しく作成されたdivを引数値として渡します。 –

0

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

関連する問題