JQuery选择器中含有冒号的ID处理差异的分析

问题提出

对于一个输入框, 如果其id中含有冒号(:),选择器使用需要有特殊写法,

例如 id为下

<input type="text" value="ddd" id="a:b">

使用$(selector)直接使用#id值, 找不到DOM

console.log("#a:b")
console.log($("#a:b").length) // output 0

经过探索可以使用以下两个方法选择到DOM:

$("#a\\:b");

$("[id^='a:b']");

其中第一种, 需要在冒号(:)前添加一个反斜杠(\), 某些同学要问了,命名是两个反斜杠, 忽悠我?

请看下节介绍。

JS转义

js中的字符串语法需要占用一些元字符, 对于这些元字符如果需要想要在字符串中出现就需要使用转移:

转义表: FROM http://www.w3school.com.cn/js/js_special_characters.asp

代码 输出
\' 单引号
\" 双引号
\& 和号
\\ 反斜杠
\n 换行符
\r 回车符
\t 制表符
\b 退格符
\f 换页符

事实上,从上表中看以看出,不仅仅是元字符需要显示才转义(" -> \"), 还有使用转移后可以将特定字符转义为另外含义的情况, 例如 n -> \n 变为换行符。

从学习上可以按照如下逻辑整体理解js转义:

1、 js字符串使用 单引号 或者 双引号 作为字符串的”括号”, 表示一个整体字符串, 引号内部为字符串内容,

2、 那么问题来了, 字符串内容中要想包括 引号, 怎么办?

3、 js设计者(Brendan Eich)考虑, 类似c语言中转义方法, 使用\x 方式来表示x, 即转义规则 \x == x, 这里x包括引号(‘ “)。

4、 既然使用了\x格式执行转义, 那字符串内容中要想包含\怎么办? 如果直接使用\, 则很可能跟其后面一个正常字符意外的转义。

5、 既然转义规则已定  \x == x, 那么\在字符串内容中存在的场景,正符合此规则, 规则应用效果为 \\ == \ 、

6、 最后还有一种场景, 存在很多控制字符(包括格式控制字符,例如\n、 和不可打印字符), 这些字符本身没有可打印字符的表现形式,即没有在ascii中[32, 126]出现。

但是字符只能书写[32, 126]之间的字符, 所以这种情况下需要定义一种新的转义, 为不增加转义元字符, 转义字符还为\,

转义规则为 \x == y,  x in [32, 126], y in [0, 31] or 127

说明: 如果对[32, 126]之间的非3 和 6中使用字符进行转义,即应用规则(\x), 则得到还是x, 符合转义规则。

总结如下图:

aaarticlea/jpeg;base64,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" alt="" />

demo代码:

            console.log('---- \\x present x (x is printable character) ----');
console.log('slash + slash='+"\\"); // \ is part of transfer encoding syntax
console.log('slash + "='+"\""); // " is collision with string syntax double quotation, eg "xx" wrapped by " console.log('---- \\x present control character ----');
console.log('slash + n='+"\n"); // \n present line break console.log('---- \\x equal x when x is not needed transfer concoding ----');
console.log('slash + 8='+"\8"); // \8 == 8
console.log('slash + o='+"\o"); // \o == o
console.log('slash + :='+"\:"); // \: == :

JQuery执行顺序跟踪

经过分析JQuery源代码, $("")的调用次序

1、 $ === jQuery.fn.init

2、 走到 jQuery.fn.init 中  return ( context || rootjQuery ).find( selector );

3、 find == jQuery.find == Sizzle

4、Sizzle 调用 newContext.querySelectorAll( newSelector )

而 querySelectorAll 为 最新浏览器都实现的 选择器查询接口,

各个DOM上都实现了 此接口, 详情见 http://www.cnblogs.com/snandy/archive/2011/03/30/1999388.html

所以查看到这里, 说明jquery 和 sizzle 未对选择器做处理。完全是 浏览器实现 的 querySelectorAll接口行为。

CSS Selector规则

W3C对选择器有一套规范:

http://www.w3.org/TR/css3-selectors/#selectors

其中有对 id选择器的说明, 可见选择器的中 : 为选择器的元字符, 即保留字符, 做伪类使用,其他情况不能与之冲突。

aaarticlea/png;base64,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" alt="" />

所以读到此处,看官明白 $("#a\\:b"); 为什么要对冒号添加转义了吧!

对于此选择器 即 "#a\\:b"  由于其本身是js字符串, \\表示\, 那么这个字符串在内存中的存储为

aaarticlea/png;base64,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" alt="" />

可以猜测 querySelectorAll 的实现, 首先会同js对selector字符串 做解析, 首先分析 : 前面不带\ 的冒号, 将其前后内容拆分, 前面为 选择器主体部分, 后面为伪类部分,

然后对 前面主题部分, 执行js字符串转义解析, 类似eval接口执行行为 :

eval("var evalselector = '#a\\:b';")
console.log(evalselector); // output  #a:b

将 aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAABBCAIAAAC/wwZPAAACU0lEQVR4nO1b0a3DIAxkrg6UeTpNd6n6nzXSD1pqhWDA2MFufKqe0pirTxeEITzC9u94rus5iUJX6xFZFrldcCvZuG4lG7fPSotwK9lw3lj5XFf/sHx8rGSDW8nGdSvZuG4lG9crOBvcSja4lWzwsZKNa8nKZfndgdf5HXgtyoVfD6xEmM91pWka56b7IYT4N8cJ0UO7Pg0OgioVRyBc+AtC0RI+REOK4TMuRbej/s4SLeVt7ZV6FKdofPxd48N4tJQ3fg0prF9xGitLmqWB5y1aWWXKoZTXreyGW8mGal6dwtzKDhCtxMuOHKp5FQrbV3C4pIvbFNWpshBKedP+yXRhiFfYFP18lPLCsqNKWAS22pn+8HfI1+BKhMGQj5VDwiqrnU1roWxpIASfDLFhgpWv++12fxGIeN5LrnbGvHQrIYa8xK0cKjuv+y2E5UFRJfWSrUUzzcuWvPTJ0ICVeN6hV78VPBay5MYNifOB561vSFBB97Ka19gUHWe2gOwlvtqxN0VnUEzyUnZDYmysnFLBI4j9UnAyZNZKopfVvJeaV35B8tKtPATFy3+zUmGhtFrBN33TNzOvfvP9iilyt+8UPf/3wd/ZmNmrndyrtL1jo1e2NxCCb0iIC/MNiW7MnQxRUMp7zVe/Q3Ar2eBWsgHPi5cdeIc9Siw7ChXv2qSWO5wQxSRZURyBcOEvCEVLqG9I6FEMF44b2mfzqDQ3hYq98pAJT1d1aWLkwpY5N7/202R7bq6zEUrPOFqE0pO3FuFWskGplSbGrFlct5KN61aycd+SEYilea07rAAAAABJRU5ErkJggg==" alt="" />转义表写 还原为 aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAA5CAIAAAAUWIQbAAABO0lEQVRoge1ZXQ6DIAzuuXYgzrPT7C7L3r0GeyARqKUCXWvN+GKM2B8+m5aiQozxvW1xFnq2oOpdYgvTfnu8S7CYjcN3niWNEPLd8vp4p7zWs61iFkIEgHQ+wkCKY5YHbePShZIUoWJGckehVpJyMdufiXQxl0mdUnLeKs92DWOQ8y5mLJrMeA0D3JYZX5t6OKnNdPDrmTa5EKpOiivAnlZrXrpvGkPUA7Rp0XmWBz5rs6VhgBv2AO/MRBXweT4AwmuGVlcFzK8aAmateYndtj2ku209NGP2gzwT01LbbcvyTHPVUGLGaxhgMRuHZg8QoKs2Pa5n6bi8B+D3gB3uYlaKfeVZHviszZaGARazcZz0AI/fHJHS+raNpQi4O5EBZ6R6tjf5hzKB9X9zHP/KzG+eLWZjtlfmGW/7BTWdCSJiV6qgAAAAAElFTkSuQmCC" alt="" />

运行如下js:

console.log("#a:b")
console.log("#a\:b")
console.log(document.querySelectorAll("#a\\:b").length)
console.log("[id^='a:b']")
console.log(document.querySelectorAll("[id^='a:b']").length)

打印如下:

aaarticlea/png;base64,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" alt="" />

结论 :

1、冒号(:)属于js中不用转义的普通可见字符, "#a:b" === "#a\:b"

2、 "#a\\:b" 为避免css selector伪类标识符号冲突的解法, 经过 js字符串转义,需要两个反斜杠\, 最后在 querySelectorAll接口中,将\:转换为:

3、 对于id中含有冒号的情况, 可以使用"[id^='a:b']"的表写方式, 这种不需要对冒号转义, 因为这种格式不存在冲突的可能。

建议 id可变的情况,都使用"[id^='a:b']"方式。

demo code

<html>
<head>
<script type="text/javascript" src="./jquery.js"></script>
<style> </style>
</head>
<body>
<input type="text" value="ddd" id="a:b">
<script>
console.log('---- \\x present x (x is printable character) ----');
console.log('slash + slash='+"\\"); // \ is part of transfer encoding syntax
console.log('slash + "='+"\""); // " is collision with string syntax double quotation, eg "xx" wrapped by " console.log('---- \\x present control character ----');
console.log('slash + n='+"\n"); // \n present line break console.log('---- \\x equal x when x is not needed transfer concoding ----');
console.log('slash + 8='+"\8"); // \8 == 8
console.log('slash + o='+"\o"); // \o == o
console.log('slash + :='+"\:"); // \: == : console.log('#a+slash+slash+:b='+"#a\\:b"); // #a\\:b == #a\:b
console.log('jquery length='+$("#a\\:b").length); // length == 1 with selector #a\\:b
console.log('jquery length='+$("[id^='a:b']").length); // length == 1 with selector [id^='a:b'] console.log("#a:b") //output #a:b
console.log("#a\:b") //output #a:b
console.log(document.querySelectorAll("#a\\:b").length)//output 1
console.log("[id^='a:b']") //: do not need transfer coding
console.log(document.querySelectorAll("[id^='a:b']").length) //output 1
</script>
</body>
</html>
上一篇:微信为啥不能直接下载.apk安装包


下一篇:《深入理解mybatis原理》 MyBatis事务管理机制