关于jQuery的ID选择器大家都不陌生。今天我遇到了如题目所描述的问题。
我要操作的Dom元素的id包含特殊字符,并且目标DOM 的ID值不能改动。
(pis:不多述原因,一般这种情况不多,我遇到了,我思考了,我解决了而已)。
用jQuery的ID选择器会出现错误。究其原因是因为ID选择器匹配字符串用的正则是 ^#([\w-]+)$,
解释这段正则:以#开头 并以 包含一个以上所有字母及下划线和中划线-字符串结尾 的字符串
对正则稍微熟悉的人都能明白。
好了一切都明白了,当id中包含 所有字母及下划线和中划线- 以外的字符的时候 是不能被匹配的,这时候ID选择器也就不起作用了。
解决这个问题有3中方法:
①直接不用特殊字符。这种方法最好。
②用这样 $(document.getElementById(domId))得到对应的jQuery对象
③改jQuery源码的匹配表达式 加上一些你想要的 特殊字符 比如 ^#([\w-\=\|]+)$,就是加上了 =和|。