2010-07-08 14 views
6

Estoy usando MyTableGrid para mostrar un control como Excel en mi página web. Se hace referencia ajQuery selector con identificadores y coma

las células con las identificaciones como "mtgIC1_0,2" para la tabla 1, columna 0, fila 2.

Por desgracia, cuando trato de utilizar el selector de jQuery con este id $("#mtgIC1_0,2"), nunca funciona.

Pensé que era por el "," ya que funciona para cualquier otro ID en la página sin coma.

Respuesta

13

ID y NAME tokens deben comenzar con una letra ([A-Za-z]) y puede ser seguido por cualquier número de letras, dígitos ([0-9]), guiones ("- "), pone de relieve (" _ "), dos puntos (": ") y puntos (" ")

Sin embargo, si a escapar de la coma que aún debe trabajar

por ejemplo

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

se me adelantó y buenos consejos en escapar. – TNi

+1

Tenga en cuenta que la primera parte de esta respuesta es específica para es para HTML4 y abajo, por lo que esto no será válido más adelante :) –

+0

Nick, si tomamos ese enfoque, ¡nada sería correcto! – redsquare

3

Desde aquí 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

Aunque es correcto escapar de caracteres especiales ... Como notas de @redsquare: los identificadores de identificación legalmente no pueden contener comas. – scunliffe

1

no sé improvisada si esta es la razón, pero de acuerdo con here, nombres de ID no debe contener comas. La sentencia es relevante:

ID y NAME fichas deben comenzar con una letra ([A-Za-z]) y puede ser seguido por cualquier número de letras, dígitos ([0-9]), guiones ("-"), guiones bajos ("_"), dos puntos (":") y puntos (".").

+0

gracias, pero "no debería suceder" y "atascado para tratar con eso" son dos mundos diferentes =) – Eric

1

Si ha conocido coordenadas de la tabla, puede orientar la celda de la siguiente manera:

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

+1 para una respuesta innovadora – redsquare