2010-07-08 15 views
6

Sto utilizzando MyTableGrid per mostrare un controllo simile a Excel nella mia pagina web.Selettore jQuery con ID e virgola

Le cellule sono referenziati con ids come "mtgIC1_0,2" per la tabella 1, colonna 0, riga 2.

Sfortunatamente, quando si tenta di utilizzare il selettore jQuery con questo id $("#mtgIC1_0,2"), esso non funziona.

Ho pensato che è a causa del "," dal momento che funziona per qualsiasi altro id nella pagina senza coma.

risposta

13

ID e NAME devono iniziare con una lettera ([A-Za-z]) e possono essere seguiti da qualsiasi numero di lettere, numeri ([0-9]), trattini ("- "), sottolinea (" _ "), due punti (":. "), e periodi (" ")

Tuttavia, se si sfuggire la virgola dovrebbe ancora funzionare

esempio

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

mi ha battuto ad esso e buoni consigli su fuggire. – TNi

+1

Si noti che la prima parte di questa risposta è specifica per HTML4 e sotto, quindi non sarà più valida in seguito :) –

+0

Nick, se avessimo adottato tale approccio, nulla sarebbe corretto! – redsquare

3

Da qui 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

Sebbene corretto per sfuggire caratteri speciali ... Come note @redsquare - Gli identificativi ID non possono contenere legalmente virgole. – scunliffe

1

non so sbrigativo se questa è la ragione, ma secondo here, nomi ID non dovrebbe contenere virgole. La frase in questione è:

ID e NAME devono iniziare con una lettera ([A-Za-z]) e può essere seguita da un numero qualsiasi di lettere, cifre ([0-9]), trattini ("-"), underscore ("_"), due punti (":") e punti (".").

+0

grazie, ma "non dovrebbe accadere" e "bloccato per affrontarlo" sono due mondi diversi =) – Eric

1

Se hai conosciuto coordinate della tabella, è possibile indirizzare la cella in questo modo:

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

+1 per una risposta innovativa – redsquare