2010-06-09 68 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());