Jquery [name = var]替换

时间:2010-06-09 00:28:27

标签: jquery

有没有办法在name =参数中使用变量。

我希望能够做到:

var a = 1;

$("#gen_p").html($("input:radio[name='gen'+a]:checked").val()));

我可以$("#gen_p"+a)但不能[name=??]

我错过了什么吗?

由于

4 个答案:

答案 0 :(得分:10)

$("#gen_p").html($("input:radio[name='gen"+a+"']:checked").val());​​

你在那里混合了一些单引号。

编辑:你在那里还有一些额外的)

答案 1 :(得分:3)

是的,你可以这样做,但你在双引号中加上单引号,所以它的字面意思是“'gen'+ a”,而不是“gen”+ a。

试试这个:

$("#gen_p").html($("input:radio[name=gen" + a + "]:checked").val()));

答案 2 :(得分:3)

你缺少双引号和+运算符:

var a = 1;
$("#gen_p").html($("input:radio[name='gen'" + a + "]:checked").val()));

在javascript中,变量不应该放在单引号/双引号内,而应该放在它们之外并用+运算符(也是 concatenation operator 分隔的JavaScript)。

答案 3 :(得分:1)

当引号变得混乱时,我更喜欢使用字符串替换。

var selector = "input:radio[name='gen{a}']:checked".replace("{a}", a);

$("#gen_p").html($(selector).val());