2010-06-09 66 views
2

有没有办法在name =参数中使用变量。Jquery [name = var]换人

我希望能够做到:

var a = 1; 

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

我能够做到$("#gen_p"+a)而不是在[name=??]

我错过了什么?

感谢

回答

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

你在那里混一些单引号。

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

+0

负责人到OP:这是第一个。 – 2010-06-09 00:31:55

+1

@Samir - 你为什么在意?如果他没有花时间编辑OP的问题,也许Sarfraz会是第一位的。 – user113716 2010-06-09 00:36:11

+1

我在他的代码中看不到额外的')'。 – Sarfraz 2010-06-09 01:02:53

3

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

试试这个:

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

你缺少双引号以及+运营商有:

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

在JavaScript中,变量不应该单/双引号内,而他们应该是放在他们的外面,并与+运营商分开(这也是在JavaScript中的concatenation operator)。

1

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

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

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