2011-10-17 73 views
0

私はいくつかのdiv要素を持っていますが、各divタグ内には他のフォーム要素があります。例:JQUERYのdiv要素内のtextarea値を取得します

<div id="div1"><input type="text" name="answer" id="answer"></div> 
<div id="div2"><textarea name="answer" id="answer">Some Value</textarea></div> 
<div id="div3"><textarea name="answer" id="answer">Some Value</textarea></div> 

div3のテキストエリアを取得するにはどうすればよいですか。ここに私が持っているものはありますが、私はいつもdiv2のテキストエリアを取り戻すだけです

var divElement = dojo.byId('div3'); 
if ($('textarea', divElement).length > 0){ 
    var text = $('textarea#answer').val(); 
} 

ヘルプ!

+1

を。 – animuson

+0

DojoとjQueryをそんなに混ぜているのはなぜですか?例えば。あなたは 'var text = $( '#div3 textarea')。val()'と書くことができます。 –

+0

あなたの要素IDは一意でなければならない - あなたは '答え'すべてを呼び出すことはできません – Widor

答えて

0
var firstTextarea = $('#div3').find('textarea :first').val(); 
1

次のセレクタ

var value = $('#div3 textarea').val(); 
alert(value); 

注意してみてください:あなたのソリューションは、id TextAreaの値と入力タグを複製し使用しています。複数のIDを持つことは合理的ではなく、道を痛めつけてしまうでしょう。一意のIDを持つようにタグを変更し、それを直接照会するのが最善です。例えば

HTML:

<div id="div1"><input type="text" name="answer" id="answer1"></div> 
<div id="div2"><textarea name="answer" id="answer2">Some Value</textarea></div> 
<div id="div3"><textarea name="answer" id="answer3">Some Value</textarea></div> 

Javascriptを

var value = $('#answer3').val(); 
alert(value); 
+0

ありがとうございます。不幸なことに、これらのdivは動的に生成され、1つのdivだけが任意の時点で表示されます。 – Maya

0

はよく、あなたはそれが良い習慣ではない、の3つの要素に同じIDが割り当てられています。すべての要素は一意のIDを持つ必要があります。同じIDを割り当てた場合、常にコードから最初の要素を取得します。
あなたはdivの3テキストエリアを検索したい場合は、以下のセレクタを使用します。あなたは、同じIDを持つ複数の要素を持つことができません

$('#div3 textarea).val() 
関連する問題