当使用jQuery选择器的时候,如果id里包含#:[]之类的特殊的符号,或者xml里有如
这个时候可以使用一些技巧来选择相关的内容。
使用转义字符,并且使用两个即可
比如要选择id为a:1的元素
可以写成$("#a\:1")。
当然也可以写作$("[id=a:1]")。
当然,效率哪个高大家都知道~
而且,如果要处理XML的话就没这么容易了。
这种,只需要$("adb\:aaa")即可
具体实现原理么,不是很明白。以前wzmaodong写表单验证的时候也出现过类似的问题。所以这回才想起来的。
他的解释是“采用的是显式构造函数new RegExp("pattern"[,"flags"]); 由于Javascript 中'' 被用作转义字符,所以在使用显示构造函数构造实例对象的时候,需要使用'\' 代替''”
但是我就纳闷了,我一个选择器难道jQuery内部也做正则去了么?明明是被正则解析啊。迷茫了。
[html]
fail
[/html]
这个在xml不能兼容IE和FF。。还有其他办法吗???可能是因为IE要解析命名空间。而FF不需要解析命名空间。导致不能通用。。。[face11]
这种,xml用$("adb\\:aaa")不能解析么?
不好意思。没说清楚
这种,xml用$("adb\\:aaa")不能解析么?
这个在IE上是完全没问题的。。但在FF上就不行。。可能是因为IE要解析命名空间。而FF不需要解析命名空间
现在我根据浏览器来判断需不需要加命名空间。虽然有点麻烦。但总算达到目标啦。谢谢博主!~