1

如何在 for 循环中连接 set 变量以用作输入中的名称以获取值?

<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

你声明choices了三遍,这是无效的,会导致很多错误。

于 2012-04-19T06:53:14.567 回答
2

each在 jQuery 中使用,它与 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(';'));

它为您节省了必须挑选和破坏特定属性值( , 等)以及必须通过选择器选择它的开销(和头痛)choices1choices2因为认为选择 via$(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 回答