2010-07-08 7 views
6

Używam MyTableGrid, aby wyświetlić formant Excel jak na mojej stronie.selektor jQuery z ids i przecinkiem

Komórki są odniesione z identyfikatorami jak „mtgIC1_0,2” do tabeli 1, kolumnie 0, wiersz 2.

Niestety, gdy próbuję użyć selektora jQuery z tym id $("#mtgIC1_0,2"), to nigdy nie działa.

Uznałem, że dzieje się tak z powodu "," ponieważ działa dla każdego innego identyfikatora na stronie bez śpiączki.

Odpowiedz

13

Identyfikator i nazwisko tokeny musi zaczynać się od litery ([a-zA-Z]) i może nastąpić przez dowolną liczbę liter, cyfr ([0-9]), myślniki ("- "), podkreśla (" _ "), dwukropek (": ")., a okresy (" ")

jeśli jednak uciec przecinek powinien nadal pracować

np

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

pokazał mi go i dobrych rad na ucieczkę. – TNi

+1

Zauważ, że pierwsza część tej odpowiedzi jest specyficzna dla HTML4 i poniżej, więc to nie będzie ważne później :) –

+0

Nick, jeśli podejmiemy takie podejście, nic nie będzie poprawne! – redsquare

3

Stąd 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

Mimo, że słusznie można uciec od znaków specjalnych ... Jako notatki @redsquare - identyfikatory ID nie mogą legalnie zawierać przecinków. – scunliffe

1

nie wiem bezceremonialny czy to jest powód, ale według here nazwy ID nie powinny zawierać przecinków. Odpowiednie zdanie:

token ID i NAZWA musi zaczynać się od litery ([A-Za-z]), po której może następować dowolna liczba liter, cyfr ([0-9]), łączniki ("-"), podkreślenia ("_"), dwukropki (":") i kropki (".").

+0

dziękuję, ale "nie powinno się zdarzyć" i "utknąć, by sobie z tym poradzić" to dwa różne światy =) – Eric

1

Jeśli znane współrzędne stołu, można kierować komórkę takiego:

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

+1 za innowacyjną odpowiedź – redsquare