近来发现一个jquery1.5版本的属性过滤选择器的一个bug,我觉得应该算是个bug,因为在jquery1.4版本下是没有问题,而在jquery1.5版本下就报错了:
火狐下报的错误是这样的:
错误: uncaught exception: Syntax error, unrecognized expression: [href$=css/common.css]
IE下报的错误是中文的:
Error:例外被抛出且未被接住
具体情况是这样的:
当你用下面的代码:
$("link[href$=css/common.css]"); //或者 $("link[href=css/common.css]"); //.....等等
选取link标签时,如果你使用的是jquery1.5版本,那么可能会报错的,为什么说可能报错呢,原因是这样的,如果你的页面上没有加载这样的html代码:
上面的jquery代码也是不报错的,但是一旦你加载了样式文件,那么就会报错。真是很奇怪呀!
下面有两个DEMO,大家可以看看是不是这样的:
jquery1.5版本的bug
jquery1.4版本没有bug
打开第一个DEMO,如果你使用的是IE,那么看浏览器的左下方,会有报错,如果使用的是火狐,请查看错误控制台。
代开第二个DEMO,你会发现页面弹出一个1,表明正常。
大家有什么更新的发现,可以留下评论!
$("link[href$='css/common.css']");
给=号右边的字符加上引号!!! 所以请大家以后写jquery代码的时候一定要规范些。以免发生上面类似的错误。呵呵
正确的DEMO:
jquery1.5 属性选择器像这样写就没问题了