JavaScript一直都是用单个反斜杠来转义特殊字符,但是jQuery都是在包装器内部确实用两个反斜杠,Why?谁能给个具体点的剖析解释?
$('#id\\[1\\]');
[]是属性选择器,所以要对[]转义,也就是要在[前面加上\,另一个\是对后面\的转义。
也就是JavaScript转一次,然后jQuery内部转一次吗?
@GuoShuoHui:
是的
@向往-SONG: 第一次转是被解析成$('#id\[1\]')还是$('#id\\1\\')呢?
@GuoShuoHui:
先JavaScript转义后到jQuery内部就是#id\[1\],jQuery检查是否有\,没有就是按属性选择器解释,有就当作id字符串。
@向往-SONG: 可是JS的转义不是从右往左的吗?这样的话好像是#id\\1\\,可是又好像不太对,具体错在哪里?
@GuoShuoHui:
在这里js只是将\转义成"\"啊,其它怎么解析是jq的事
@向往-SONG: 谢谢了!
jquery 还真没有用到过这个\\
包装器内的确是用这个,不过我不是很明白!