大家都知道JQUERY 是一个JAVASCRIPT的开发框架,昨天有位朋友问我,如果HTML的标签ID为 "aa==" JQUERY就无法获取该对象了。我查了一下JQUERY的源代码发现它的选择器有规则限制,一下是它源码的部分。
window.$ = jQuery;
//匹配选择器的正则
var quickExpr = /^[^<]*(<(.|s)+>)[^>]*$|^#(w+)$/;
//jq原型设置(用来增加插件,或扩展原型)
jQuery.fn = jQuery.prototype = {
init: function(selector, context) {
// 默认选择器对象
selector = selector || document;
// Handle HTML strings
if ( typeof selector == "string" ) {
var m = quickExpr.exec(selector);
这里 quickExpr 是一个正则匹配式,如果按照那位朋友的做法就必须这样写:
var quickExpr = /^[^<]*(<(.|s)+>)[^>]*$|^#([w=]+)$/;
后来测试成功了,但是这里需要注意的是 JQ的选择器有几个特殊的字符是不能加到这个匹配式(w+)里的。比如 > + ~ 。
后期有没有出现什么影响就没测试过了。希望各位朋友在使用的时候尽量别用特殊字符做属性名。
window.$ = jQuery;
//匹配选择器的正则
var quickExpr = /^[^<]*(<(.|s)+>)[^>]*$|^#(w+)$/;
//jq原型设置(用来增加插件,或扩展原型)
jQuery.fn = jQuery.prototype = {
init: function(selector, context) {
// 默认选择器对象
selector = selector || document;
// Handle HTML strings
if ( typeof selector == "string" ) {
var m = quickExpr.exec(selector);
这里 quickExpr 是一个正则匹配式,如果按照那位朋友的做法就必须这样写:
var quickExpr = /^[^<]*(<(.|s)+>)[^>]*$|^#([w=]+)$/;
后来测试成功了,但是这里需要注意的是 JQ的选择器有几个特殊的字符是不能加到这个匹配式(w+)里的。比如 > + ~ 。
后期有没有出现什么影响就没测试过了。希望各位朋友在使用的时候尽量别用特殊字符做属性名。
