2010-07-08 7 views
6

J'utilise MyTableGrid pour afficher un contrôle Excel dans ma page Web.Sélecteur jQuery avec id et virgule

Les cellules sont référencées par des IDs comme « mtgIC1_0,2 » pour le tableau 1, colonne 0, ligne 2.

Malheureusement, lorsque je tente d'utiliser le sélecteur jQuery avec cet identifiant $("#mtgIC1_0,2"), ça ne marche jamais. J'ai pensé que c'était à cause du "," car cela fonctionne pour tous les autres identifiants dans la page sans coma.

Répondre

13

jetons d'identité et le nom doit commencer par une lettre ([A-Za-z]) et peuvent être suivis par un certain nombre de lettres, chiffres ([0-9]), ("traits d'union - "), souligne (" _ "), points (". "), et les périodes (" ")

Toutefois, si vous échapper à la virgule, il doit encore travailler

par exemple

$('#mtgIC1_0\\,2') 
+0

me devança et de bons conseils sur échapper. – TNi

+1

Notez que la première partie de cette réponse est spécifique à HTML4 et ci-dessous, donc cela ne sera pas valide plus tard :) –

+0

Nick, si nous prenions cette approche, rien ne serait correct! – redsquare

3

D'ici http://api.jquery.com/category/selectors/

« If you wish to use any of the meta-characters (#;&,.+*~':"!^$[]()=>|/) as a literal part of a name, you must escape the character with two backslashes: \\. For example, if you have an an input with name="names[]", you can use the selector $("input[name=names\\[\\]]"). »

+0

Bien que correct pour échapper à des caractères spéciaux ... Comme @redsquare notes - les identifiants ID ne peuvent pas contenir légalement des virgules. – scunliffe

1

Je ne sais pas si ce désinvolture est la raison, mais selon here, les noms d'identification ne doit pas contenir des virgules. La phrase pertinente est:

ID et jetons Le nom doit commencer par une lettre ([A-Za-z]) et peut être suivi par un certain nombre de lettres, de chiffres ([0-9]), traits d'union ("-"), souligne ("_"), deux-points (":") et points (".").

+0

merci, mais "ne devrait pas arriver" et "coincé pour y faire face" sont deux mondes différents =) – Eric

1

Si vous avez des coordonnées connues de la table, vous pouvez cibler la cellule comme ceci:

$('#myTable tr:nth-child(2) td:nth-child(2)').css('background-color', '#F00'); 
+0

+1 pour une réponse innovante – redsquare