实践jquery 高级编程(续集一)

// 下面的代码可不是抄袭的哟,买了本jquery权威指南的书,一步一步敲上去的哟!都是在本地运行过的,请指正拍砖

// 使用data()方法json格式数据
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<style type="text/css">
body{font-size:13px}
</style>
<script type="text/javascript">
$(function(){
    $("p").data("tmpDate");
    $("#divTip").append($("p").data("tmpData") == null ? "初始时:null" : $("p").data("tmpData"));
    $("p").data("tmpData",{name:"李建洲",sex:"女",score:"80"});
    $("#divTip").append("<br>赋值后:" + $("p").data("tmpData").name + "/"+$("p").data("tmpData").sex + "/" + $("p").data("tmpData").score); //  
    $("p").removeData("tmpData");
    $("#divTip").append($("p").data("tmpData") == null ? "<br>移除时:null":$("p").data("tmpData"));
});
</script>
</head>
<body>
<p><b>数据状态</b></p>
<div id="divTip"></div>
</body>

// jquery 循环遍历数组
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<style type="text/css">
body{font-size:13px}
#ulFrame{padding:0px;margin:0px; list-style-type:none;width:200px}
ul li{border-bottom:dashed 1px #ccc;padding:5px}
</style>
<script type="text/javascript">
$(function(){
    var arrList = ["list0","list1","list2","list3","list4","list5"];
    var strList = ""; 
    $.each(arrList,function(index){ 
        strList += "<li>" + arrList[index] + "</li>";    
    });
    $("#ulFrame").append(strList);
});
</script>
</head>
<body>
<ul id="ulFrame"></ul>
</body>

// jquery 性能优化( php性能优化    mysql性能优化):
1. 常用优化策略(372页):优先使用ID和标记选择器;使用jquery对象缓存;正确使用选择器;使用最新的jquery库;避免过度使用jquery对象(因为每个对象都含有很多属性和方法:val,);更过的使用链式写法;
使用jquery对象缓存:
1).使用jquery对象时尽量使用变量先保存对象名,然后通过变量进行相应的方法操作
如:  var objTmp = $("#divTip");  ==> objTmp.bind(function(){ ...});  objTmp.css("width","200px");
2). 设置全局变量: 使用定义的变量  在其他的函数中也能被调用
window.$objPub = {   // 在全局范围中  定义一个window对象
    $objTmp:$("#divTip")
}
调用 :$objPub.$objTmp.bind("click",function(){ ... });
// 正确处理元素间的父子关系
var $p = $("#parent"); var $c = $(".child");
第一种 :$p.find($c);   // 这种方法最快(自动调用浏览器原生方法 比如:getElementById)
第二种 :$("#parent .child");   // 第二种和第三种速度最慢   先右后左,先获取子元素在与多个父级元素匹配
第三种 :$($p > $c);
// 正确使用循环 尽量使用原生的for或while 而不是each   循环10000次  for:1ms  each:10ms

// jquery 工具函数:
// $.browser 判断浏览器的类型和版本
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<style type="text/css">
body{font-size:13px}
#ulFrame{padding:0px;margin:0px; list-style-type:none;width:200px}
div{margin:5px;padding:10px;border:solid }
</style>
<script type="text/javascript">
$(function(){
    var strTmp = "你的浏览器名称是:";
    if($.browser.msie){
        strTmp += 'IE';
    }else if($.browser.mozilla){
        strTmp += 'FireFox';
    }
    strTmp += "版本号:"+$.browser.version;
    $("#divTip").html(strTmp);
});
</script>
</head>
<body>
<div id="divTip"></div>
</body>
// $.support.boxModel 判断是否是标准的W3C盒子模型 
// $.each() 循环遍历
// $.grep() 帅选数组元素

<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<style type="text/css">
body{font-size:13px}
#ulFrame{padding:0px;margin:0px; list-style-type:none;width:200px}
div{margin:5px;padding:10px;border:solid }
</style>
<script type="text/javascript">
$(function(){
    var strTmp = "帅选前的数据:";
    var arrNum = [2,8,3,7,4,9,3,10,9,7,21];
    var arrGet = $.grep(arrNum,function(ele,index){
        return ele >5 && index <8;
    });
    strTmp += arrNum.join();
    strTmp += "<br><br>帅选后的数据:";
    strTmp += arrGet.join();
    $("#divTip").append(strTmp);   // 帅选前的数据:2,8,3,7,4,9,3,10,,9,7,21     帅选后的数据:8,7,9,10
});
</script>
</head>
<body>
<div id="divTip"></div>
</body>

// $.map() 变更数组元素(和$.grep一样)
// $.inArray() 搜索元素返回元素的位置
// 字符串操作:$.trim()
// 测试操作: $.isArray(obj); $.isFunction(obj);  $.isEmptyObject(obj); $.contains(container,contained);
$.extend()拓展工具函数:

<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<style type="text/css">
body{font-size:13px}
div{margin:5px;padding:10px;border:solid 1px #666;background-color:#eee;width:260px}
</style>
<script type="text/javascript">
;(function($){
    $.extend({
        "MaxNum":function(p1,p2){
            return (p1 > p2) ? p1 : p2;
        }
    });
   
})(jQuery);   
;(function($){
    $.extend({
        "MinNum":function(p1,p2){
            return (p1 > p2) ? p2 : p1;
        }
    });
   
})(jQuery);   
$(function(){
    var strTmp = "5和6中最大的数是:";    // 5和6中最大的数是:6
    strTmp += $.MaxNum(5,6);
    strTmp += "<br/><br>7与8最小的数是:";  //   7与8最小的数是:7
    strTmp += $.MinNum(7,8);
    $("#divTip").html(strTmp);
});
</script>
</head>
<body>
<div id="divTip"></div>
</body>
// jquery正则表达式(338')
email :'\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*';
telphone:'(\\(\\d{3,4}\\)|\\d{3,4}-|\\s)?\\d(7,8)';
mobile:'(86)*0*1[3,5]\\d{9}';
postcode:'^\\d{6}$';
number:'^-?[0,9]\\d*$';
zh_cn:'[\\u4e00-\\u9fa5]';
url:'[a-zA-Z]+://[^\\s]*';

相关推荐