2010-06-09 5 views
2

Existe-t-il un moyen d'utiliser une variable dans le paramètre name =?Jquery [name = var] substitution

Je voudrais pouvoir faire:

var a = 1; 

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

Je suis capable de faire $("#gen_p"+a) mais pas dans le [name=??]

Ai-je manqué quelque chose?

Merci

Répondre

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

Vous mélangez des guillemets simples là-dedans.

EDIT: Vous aviez également quelques ) supplémentaires là-dedans.

+0

Avance vers l'OP: celui-ci était le premier. –

+1

@Samir - Pourquoi vous en souciez-vous? Peut-être que Sarfraz aurait été le premier s'il ne prenait pas le temps d'éditer la question pour le PO. – user113716

+1

Je ne peux pas voir d'autres ')' dans son code. – Sarfraz

3

Oui, vous pouvez le faire, mais vous mettez des guillemets simples dans les guillemets doubles, donc il lit littéralement comme "gen '+ a", pas "gen" + a.

Essayez ceci:

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

Il vous manque des guillemets doubles ainsi que l'opérateur + il:

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

En javascript, les variables ne doivent pas venir à l'intérieur simples/doubles guillemets, ils devraient plutôt être mettre à l'extérieur d'eux et séparés avec + opérateur (qui est également concatenation operator en javascript).

1

Lorsque les guillemets deviennent salissants, je préfère utiliser la chaîne remplacer.

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

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