1

動的に生成されたテキストエリアのグループからテキスト値の配列を作成しています。

アラートステートメントをループに入れて、それが機能しているかどうかを確認しました。最初に検出されたテキストエリアにのみアラートを発し、残りのテキストエリアにはアラートを発していません。

これが私のjQueryです:

var textArray = [];

$('[name=txtObjective]').each(function (i) {
     alert($(this).val());
     textArray.push(i.val());
});

そして、ここに私のテキストエリアがどのように見えるかがあります:

 <textarea name='txtObjective' class='objectives'>this is some text</textarea>
 <textarea name='txtObjective' class='objectives'>this is some more text</textarea>
 <textarea name='txtObjective' class='objectives'>this is even some more text</textarea>

私が間違っていることの手がかりはありますか?

ありがとう

4

4 に答える 4

3

実行時にエラーが発生するためtextArray.push(i.val());..の最初の引数.eachは数値であるインデックスであり、適用.valするとエラーがスローされ、ループから抜け出します。

要素である 2 番目の引数を使用するか、 を使用しますthis

textArray.push(i.val());に変更textArray.push($(this).val());

于 2013-04-26T13:56:05.050 に答える
1

コンソールでエラーが発生するはずです-Object 0 has no method 'val'

$('[name=txtObjective]').each(function (i) {
     alert($(this).val());
     textArray.push($(this).val()); // <<-- use $(this) here instead of i
});

http://jsfiddle.net/mohammadAdil/j8JgX/

于 2013-04-26T13:55:53.787 に答える