项目进度太赶,天天公司加班12小时,没时间看书充电。2016年再更新一篇吧。现在凌晨2点36分。

2017加油哦

jquery合适的选择器

$("#id")
无疑是最佳提高性能的方法
如果不能直接找到你要的元素
那么可以考虑find()
$("p").find("a")
之外还有
标签选择器 $("p")
属性选择器$("[attr=value]");
$(":hidden")建议大家不要使用 性能不好,
如果要用可以这样
$("#div").find(":hidden");

缓存对象

$("#traffic_light input.on").bind()
$("#traffic_light input.on").css()
$("#traffic_light input.on").fadeIn()
导致jquery每次都要创建一个选择器 查找DOM 创建多个jqeury对象
建议
var $traffic = $("#traffic_light input.on");缓存对象
$traffic.bind().css().fadeIn();
进阶用法:
如果缓存到全局环境中
window.$my={
head:$("head"),
traffic:$("#traffic_light input.on"),
traffic_button:$("#traffic_button")
}
function do_something(){
var script = document.createElement("script");
$my.head.append(script);
$my.cool_result = $("#some_ul li");

$my.traffic_button.css("border-color","aquamarine");
}
记住永远不要让相同的选择器再你的代码中出现多次;

循环时的DOM操作

var top = [] 假如有100个独一无二的字符串
$mylist =$("#mylist");
for (var i = 0 l=top_lenght ; i <l; i++) {
top += "<li>"+top_list[i]+"</li>"
}
$mylist.append(html);

append不可以放for循环里面 top应该提前创建好

数组方式用jqeury对象

建议使用for 或 while处理 比 $.each()效果更好
var array = new Array()
for (var i = 0; i < array.length; i++) {
array[i] = i;

}
另外检测数组长度用
if($("#div").length);返回true 或false;

事件代理

动态绑定事件
$("#myTable").on("click","td",function(){
$(this).css("background","royalblue")
})

讲你的代码转换成jquery插件

(function(){
jQuery.fn.youPlug=function(){
   //do smoething
return this;
}

})(jQuery)

使用join拼接字符串

var top = [] 假如有100个独一无二的字符串
$mylist =$("#mylist");
for (var i = 0 l=top_lenght ; i <l; i++) {
top[i] = "<li>"+top_list[i]+"</li>"
}
$mylist.append(top.join(""));

合理利用HTML5的Data属性

<body>
<div id="dl" data-role="page" data-last-value="43" data-options='{"name":"jack"}'></div>

<script type="text/javascript">

$("#dl").data("role") //page

</script>
</body>

扩展string对象的方法  正则表单提交

 <div>
<input type="text" /><button >check</button>
</div>
<script>
$.extend(String.prototype, {
isPositiveInteger:function(){
return (new RegExp(/^[1-9]\d*$/).test(this));
},
isInteger:function(){
return (new RegExp(/^\d+$/).test(this));
},
isNumber: function(value, element) {
return (new RegExp(/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/).test(this));
},
trim:function(){
return this.replace(/(^\s*)|(\s*$)|\r|\n/g, "");
},
trans:function() {
return this.replace(/&lt;/g, '<').replace(/&gt;/g,'>').replace(/&quot;/g, '"');
},
replaceAll:function(os, ns) {
return this.replace(new RegExp(os,"gm"),ns);
},
skipChar:function(ch) {
if (!this || this.length===0) {return '';}
if (this.charAt(0)===ch) {return this.substring(1).skipChar(ch);}
return this;
},
isValidPwd:function() {
return (new RegExp(/^([_]|[a-zA-Z0-9]){6,32}$/).test(this));
},
isValidMail:function(){
return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(this.trim()));
},
isSpaces:function() {
for(var i=0; i<this.length; i+=1) {
var ch = this.charAt(i);
if (ch!=' '&& ch!="\n" && ch!="\t" && ch!="\r") {return false;}
}
return true;
},
isPhone:function() {
return (new RegExp(/(^([0-9]{3,4}[-])?\d{3,8}(-\d{1,6})?$)|(^\([0-9]{3,4}\)\d{3,8}(\(\d{1,6}\))?$)|(^\d{3,8}$)/).test(this));
},
isUrl:function(){
return (new RegExp(/^[a-zA-z]+:\/\/([a-zA-Z0-9\-\.]+)([-\w .\/?%&=:]*)$/).test(this));
},
isExternalUrl:function(){
return this.isUrl() && this.indexOf("://"+document.domain) == -1;
}
}); $("button").click(function(){
alert( $("input").val().isInteger() );
});
</script>

最新文章

  1. TCP/IP中链路层的附加数据(Trailer数据)和作用
  2. 解决virtualbox装ghost xp装驱动时报portcls.sys蓝屏的问题
  3. iOS 遇到的错误总结
  4. linux下实现在程序运行时的函数替换(热补丁)
  5. UE4 执行Console Command ----ExecuteConsoleCommand
  6. 使用SAXReader读取ftp服务器上的xml文件(原创)
  7. Mybatis学习记录(六)----Mybatis的高级映射
  8. HDU 4004
  9. 结构型模式——Adapter
  10. Redis学习手册
  11. 利用纯CSS3实现超立体的3D图片侧翻倾斜效果
  12. Sping Boot入门到实战之入门篇(二):第一个Spring Boot应用
  13. Docker学习笔记 - Docker的镜像
  14. 覆盖ng-zorro样式(非style.scss)
  15. rocketmq简单消息发送
  16. CC3000 Arduino 连接Yeelink中文注释 示例
  17. 微信小程序image组件中aspectFill和widthfix模式应用详解
  18. javascript之动画特效
  19. 2018软工实践—Beta冲刺(1)
  20. amfphp2.1.1的使用经过

热门文章

  1. 使用Oracle Wrap工具加密你的代码
  2. D12
  3. C/C++基础知识总结——多态性
  4. Linux环境进程间通信(五): 共享内存(下)
  5. ios缩放图片
  6. iOS多线程的初步研究1
  7. asp.net mvc4设置area里面使用相同的 Controller 名称并设置area里的页面为起始页
  8. grunt 上手
  9. 杨氏矩阵查找元素位置Java实现
  10. 纯Python综合图像处理小工具(3)10种滤镜算法