1

forループの設定変数を連結して、値を取得するための入力の名前として使用するにはどうすればよいですか?

<script>
var k=0;
var counter = 50;

    for(k=0; k<=counter; k++){
        var choices = $('input[name=choices'+ k]).val();
        var choices = choices.replace(/\ /g, '%');
        var choices_ = choices_ +";"+ choices;
    }
   alert(choices);
</script>

複数の入力フィールド、つまり、choices1、choices2などがあります。forループを使用してこれらのフィールドの値を取得するにはどうすればよいですか?名前の選択肢と変数kを連結するにはどうすればよいですか?この問題を解決するのを手伝ってくれませんか?

4

6 に答える 6

2

3 回宣言していますがchoices、これは無効であり、多くのエラーにつながります。

于 2012-04-19T06:53:14.567 に答える
2

jQuery で使用eachしますが、for ループと同じです。

たとえば、次の HTML があるとします。

​&lt;input type ="text" name="field1" value="Alpha" />
<input type ="text" name="field2" value="Bravo" />
<input type ="text" name="field3" value="Charlie" />​

そして、ここにjsファイルがあります:

var k = 1;
$('input').each(function(e) {
    alert('choices' + k + '=' + $(this).val());
    k++;
});​

ここでデモ。それが役に立てば幸い。

于 2012-04-19T06:59:23.830 に答える
2

特殊な属性セレクターを使用して、常に反復することができます.each()

var choices = $('input[name^="choices"]'),  // name starts with "choices"
    choices_val = []                        // an array!
    ;

choices.each(function () {
    choices_val.push($(this).val().replace(/\ /g, '%'));
});

alert(choices_val.join(';'));

choices1特定の属性値( 、choices2など)選択してマングルし、セレクターを介して選択する必要があるというオーバーヘッド(および頭痛)を節約します( 'を介して選択する$(this)方が より速いと思います$('input[name="choices1"]'))。

于 2012-04-19T07:02:24.047 に答える
1
$('input[name=choices'+ k +']').val();

別の + 記号と一重引用符を付け忘れているだけです。

于 2012-04-19T07:33:36.027 に答える
0

2 つの引用符と + を逃したと思います。

$('input[name=choices' + k + ']').val();

于 2012-04-19T06:56:29.493 に答える
0

引用符を追加

    var choices = $('input[name=choices'+ k + ']').val();

CSSセレクターを使う

$(".className").each(function(){
       $(this).myFunction();
})

jQuery.fn.myFunction = function()

        var choices = $(this).val();
        var choices = choices.replace(/\ /g, '%');
        var choices_ = choices_ +";"+ choices;
}
于 2012-04-19T07:01:43.147 に答える