用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]

  1. 3 Responses to “用jQuery 选择器选取包含特殊字符的元素”

  2. 这个在xml不能兼容IE和FF。。还有其他办法吗???可能是因为IE要解析命名空间。而FF不需要解析命名空间。导致不能通用。。。[face11]

    By colinkyo on Jun 20, 2008


  3. 这种,xml用$("adb\\:aaa")不能解析么?

    By Shawphy on Jun 20, 2008

  4. 不好意思。没说清楚

    这种,xml用$("adb\\:aaa")不能解析么?
    这个在IE上是完全没问题的。。但在FF上就不行。。可能是因为IE要解析命名空间。而FF不需要解析命名空间
    现在我根据浏览器来判断需不需要加命名空间。虽然有点麻烦。但总算达到目标啦。谢谢博主!~

    By colinkyo on Jun 22, 2008

发表评论

您宝贵的评论将会在审核后立马发布,别担心~~马上就出来~~~感谢您的关注~~