最近在用Jquery做一个项目。发现一个很有趣的现象:
在Jquery早期版本中,属性选择器用得很是顺利,可到了1.4.4及以后的版本就不好用了:
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="jquery-1.2.1.js" type="text/javascript"></script>
<script>
//点击Home时
$(function(){
$(this).find("[validate!='']").each(function(i,n){
var obj = n;
$(obj).blur(function() {
alert($(obj).attr("validate"));
// return $.singlevaildate(this, false);
})
})
});
</script>
</HEAD>
<BODY>
<select id="page"></select>
<ul id="menu" validate="aaaa">
<li id="aa">
<ul>
<li>
<a href="#" validate="cccc">Home</a>
</li>
</ul>
</li>
<li>End</li>
<li>
<input type="text" value="click me" id="tex" validate=""/>
</li>
</ul>
</BODY>
</HTML>
以上代码,在1.2.6以下的版本中,都是运行很好。结果如下:
aaaa,bbbb,cccc 光标移开会打出:cccc
但一到了1.4.4版本下,
会打出一串的undefind 出来,且其中也会打出aaaa,cccc出来。
解决办法:
$(this).find("[validate!='']").each(function(i,n){ 改为:
$(this).find("[validate][validate!='']").each(function(i,n){
共同学习,写下你的评论
评论加载中...
作者其他优质文章