2

ボタンのクリックで別の「行」(入力を含む div) を作成するコードがあります。新しい入力要素を作成していますが、すべて正常に動作しますが、これらの新しい要素にアクセスする方法が見つかりません。

例: 入力要素 (下の name_1) があります。createElement次に、javascript の関数を使用して、別の入力要素 (下の name_2) を作成します。

<input type='text' id='name_1' name="name_1" />
<input type='text' id='name_2' name="name_2" />

繰り返しますが、要素を正常に作成しますが、name_2 の値が作成され、ユーザーによって変更された後、その値にアクセスできるようにしたいと考えています。例:document.getElementById('name_2');

これはうまくいきません。DOM に新しい要素を認識させるにはどうすればよいですか? 出来ますか?

私のコードサンプル(jQueryを利用):

function addName(){
var parentDiv = document.createElement("div");
$(parentDiv).attr( "id", "lp_" + id );

var col1 = document.createElement("div");
var input1 = $( 'input[name="lp_name_1"]').clone(true);
$(input1).attr( "name", "lp_name_" + id );
$(col1).attr( "class", "span-4" );
$(col1).append( input1 );

$(parentDiv).append( col1 );

$('#main_div').append(parentDiv);
}

jQuery セレクターと JavaScript セレクターの両方を使用しました。例: $('#lp_2').html()null を返します。そうですdocument.getElementById('lp_2');

4

5 に答える 5

2

要素を作成し、appendChild などの関数を使用して DOM に追加する必要があります。詳しくはこちらをご覧ください。

私の推測では、createElement() を呼び出しましたが、DOM 階層に追加したことはありません。

于 2008-09-24T18:36:21.710 に答える
0

回答ありがとうございます。立ち去って自分のコードに戻った後、間違いを犯したことに気付きました。異なる方法で行を追加する 2 つの関数がありました。私は正しいもの (私が投稿したコード例) を呼び出していることを「100% 確信」していましたが、残念ながらそうではありませんでした。

問題が発生している人にとっては、私が受け取ったすべての回答は素晴らしいスタートであり、デバッグに使用したものであり、コードの正確性を保証します.

私のコード例は、私が必要としていたものに対して 100% 正しかったので、それを呼び出す必要がありました。(当たり前!)

あなたのご親切に感謝します、

-ジェイミー

于 2008-09-24T19:40:13.167 に答える
0

DOM ツリーに適切に追加されている場合は、document.getElementById を使用してクエリを実行できます。ただし、ブラウザのバグが問題を引き起こす可能性があるため、ブラウザのバグを回避する jQuery などの JavaScript ツールキットを使用してください。

于 2008-09-24T18:37:09.510 に答える
0

var input1 = $( 'input[name="lp_name_1"]').clone(true);

投稿したコードは、その name 属性を持つ要素を示していません。この部分の直前に、同様のid属性を持つ要素を作成し$("#lp_1")ますが、それを選択するために使用しますが、ドキュメントに挿入するまでは機能しません。

于 2008-09-24T19:07:57.923 に答える
0
var input1 = $( 'input[name="lp_name_1"]').clone(true);

する必要があります

var input1 = $( 'input[@name="lp_name_1"]').clone(true);

最初にそれを試して、input1 が実際に何か (おそらく一種のデバッグ ステートメント) を返すことを確認して、それが問題ではないことを確認します。

編集:これは古いバージョンのJQueryにのみ当てはまると言われているので、私のアドバイスは無視してください。

于 2008-09-24T19:08:57.030 に答える