0

私はこのスニペットを持っています。その結果、エラーが表示されます。割り当ての左側が無効です。

var arr = [ "text1", "text2", "text3", "text4" ];
    jQuery.each(arr, function(index, value) {
        this = jQuery("#sc-dialog ."+value).val();
});

誰かがこれを修正する方法を教えてもらえますか?ありがとう。

これは更新 です。変数「text」にループ内の番号が含まれる必要があります:text1、text2、text3 ...次のようにしました:

var arr = [ "1", "2", "3", "4" ];
jQuery.each(arr, function(index, value) {
        var text + index = jQuery("#sc-dialog .text"+value).val();
});

しかし、エラーが発生しました:予期しない識別子。問題はここにあります:var text + index

4

3 に答える 3

1

このようにしてみてください:

jQuery.each(arr, function(index, value) {
    arr[index] = jQuery("#sc-dialog ."+value).val();
});
于 2012-07-14T10:26:10.830 に答える
0

'this'を変数名として使用することはできません。次のようなものを試してください:

var arr = [ "text1", "text2", "text3", "text4" ];
    jQuery.each(arr, function(index, value) {
        var dialogValue = jQuery("#sc-dialog ."+value).val();
});
于 2012-07-14T10:53:16.283 に答える
0

+変数名の後にaを付けると、varステートメントの構文エラーになります。

var text + index = jQuery("#sc-dialog .text"+value).val()

有効な変数宣言は、それ自体が変数名のいずれかになります。

var text;

または、値が割り当てられた変数名:

var text = jQuery("#sc-dialog .text"+value).val();

割り当てられる値には、+または他の演算子を含めることができます。

var x = y + z - 5 * (a + b);

また、1つのvarステートメントで、値をコンマで区切って、値の有無にかかわらず複数の変数を宣言できます。

var i, j = 0, k, text = jQuery("#sc-dialog .text"+value).val(), x = 12 + 4;

単純なパターン(この場合は配列要素のインデックスに1を加えたもの)に従う数値の配列は、標準のforループで同じことを実現できる場合は、意味がありません。編集:あなたのコメントから、ループ内の値を処理したくないようです。後で使用するために値を保存したいと思います。text1text2などが必要だと言っていますが、それらを個別に参照する必要がある場合は、さまざまなテキスト領域が実際にはグループではないように思われ、ループで処理することはまったく意味がありません。ただし、主張する場合は、値を配列に格納する必要があります。

var i,
    text = [];
for (i = 1; i <=4; i++) {
    text[i] = jQuery("#sc-dialog .text"+i).val();
}
// later in your code
// text[1] is first value,
// text[2] is second value, etc

JS配列インデックスはゼロベースであり、配列.lengthは最高のインデックスより1つ多いことに注意してください。ただし、フィールドの番号付けは1から始まります。後でtext配列をループする場合は、この点に注意してください。

于 2012-07-14T12:19:08.163 に答える