开发者

jQuery selector with ids and comma

开发者 https://www.devze.com 2023-01-06 23:32 出处:网络
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.

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');
0

精彩评论

暂无评论...
验证码 换一张
取 消