用jQuery 选择器选取包含特殊字符的元素
2008年5月18日 – 00:14当使用jQuery选择器的时候,如果id里包含#:[]之类的特殊的符号,或者xml里有如
这个时候可以使用一些技巧来选择相关的内容。
使用转义字符,并且使用两个\即可
比如要选择id为a:1的元素
可以写成$("#a\\:1")。
当然也可以写作$("[id=a:1]")。
当然,效率哪个高大家都知道~
而且,如果要处理XML的话就没这么容易了。
这种,只需要$("adb\\:aaa")即可
具体实现原理么,不是很明白。以前wzmaodong写表单验证的时候也出现过类似的问题。所以这回才想起来的。
他的解释是“采用的是显式构造函数new RegExp("pattern"[,"flags"]); 由于Javascript 中'\' 被用作转义字符,所以在使用显示构造函数构造实例对象的时候,需要使用'\\' 代替'\'”
但是我就纳闷了,我一个选择器难道jQuery内部也做正则去了么?明明是被正则解析啊。迷茫了。
[html]
fail
[/html]

3 Responses to “用jQuery 选择器选取包含特殊字符的元素”
这个在xml不能兼容IE和FF。。还有其他办法吗???可能是因为IE要解析命名空间。而FF不需要解析命名空间。导致不能通用。。。[face11]
By colinkyo on Jun 20, 2008
这种,xml用$("adb\\:aaa")不能解析么?
By Shawphy on Jun 20, 2008
不好意思。没说清楚
这种,xml用$("adb\\:aaa")不能解析么?
这个在IE上是完全没问题的。。但在FF上就不行。。可能是因为IE要解析命名空间。而FF不需要解析命名空间
现在我根据浏览器来判断需不需要加命名空间。虽然有点麻烦。但总算达到目标啦。谢谢博主!~
By colinkyo on Jun 22, 2008