I am using MyTableGrid to show an Excel like control in my webpage.
The cells are referenced with ids like "mtgIC1_0,2" for table 1, column 0, row 2.
Unfortunately, when I try to use the jQuery selector with this id $("#mtgIC1_0,2")
, it never works.
I figured it is because of the "," since 开发者_如何学Cit works for any other ids in the page without coma.
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".")
However if you escape the comma it should still work
e.g
$('#mtgIC1_0\\,2')
From here 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\\[\\]]").
"
I don't know offhand if this is the reason, but according to here, ID names should not contain commas. The relevant sentence is:
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
If you have known coordinates of the table, you can target the cell like this:
$('#myTable tr:nth-child(2) td:nth-child(2)').css('background-color', '#F00');
精彩评论