我有我试图调用一个HTML ID。 它有一个特定的名字建立这样的name_|_anyting
但是当我尝试使用jQuery的选择得到elemetn我得到一个错误
$("#name_|_anyting")
错误:语法错误,无法识别的表达式:| _anyting
所以我的问题是:管道符不jQuery选择允许作为IDS?
我有我试图调用一个HTML ID。 它有一个特定的名字建立这样的name_|_anyting
但是当我尝试使用jQuery的选择得到elemetn我得到一个错误
$("#name_|_anyting")
错误:语法错误,无法识别的表达式:| _anyting
所以我的问题是:管道符不jQuery选择允许作为IDS?
|
在选择语法,这意味着你不能在一个ID选择直接使用特殊字符。 如果你不能改变的ID在您的标记,以适应你的选择,你必须凑合着逃离选择欺骗jQuery的进反正选择元素:
$("#name_\\|_anything")
竖线“|” 必须使用双反斜线进行转义。
选择
从CSS 1-3借款,然后加入了自己,jQuery提供了一套功能强大的工具,用于匹配一组文档中的元素。
如果你想使用任何的元字符(如“#$%&'()* +,/ :; <=> @ [] ^`!?{|}〜****)作为一个名称的文字部分,必须以两个反斜杠逃脱字符:\\例如,如果你有一个ID =“foo.bar”的元素,你可以使用选择$(“#foo的\\吧。” )的W3C CSS规范包含一套完整的关于有效的CSS选择器规则,也是有用的博客条目由马蒂亚斯Bynens的标识符CSS字符转义序列。
http://api.jquery.com/category/selectors/
要更新一个老问题...在jQuery的3.0现在可以使用$ .escapeSelector(选择) 。 例子:
$('#' + $.escapeSelector('crazy|id.selector') + 'Wrapper').show();
$('.' + $.escapeSelector(divClassVariable)).each(function() {...})
和(来自文档)
$( "div" ).find( "." + $.escapeSelector( ".box" ) );