Jquery选择器特殊字符问题
场景: $("#" + AAA + ""),AAA代表某表单ID
当AAA为普通字符串时,ok;
当AAA含有特殊符号时(eg:a.b),获取不到该对象;
原因:特殊符号会进行转义,上面那种方式就无法获取的该ID。
// Does not work:
$( "#some:id" )
// Works!
$( "#some\\:id" )
// Does not work:
$( "#some.id" )
// Works!
$( "#some\\.id" )
解决:
The following function takes care of escaping these characters and places a "#" at the beginning of the ID string:
function jq( myid ) {
return "#" + myid.replace( /(:|\.|\[|\]|,)/g, "\\$1" );
}
The function can be used like so:
$( jq( "some.id" ) )
http://learn.jquery.com/using-jquery-core/faq/how-do-i-select-an-element-by-an-id-that-has-characters-used-in-css-notation/