项目进度太赶,天天公司加班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>

【锋利的Jquery】读书笔记十一的更多相关文章

  1. 锋利的jQuery读书笔记---选择器

    前段时间入手了锋利的jQuery(第二版),想着加强下自己的js能力,可前段时间一只在熟悉Spring和Hibernate.最近抽时间开始读这本书了,随便也做了些记录. 读书的过程是边看边代码测试,所 ...

  2. 锋利的jQuery读书笔记---jQuery中Ajax--序列化元素、Ajax全局事件

    serialize()方法: 作用于一个jQuery对象,它能够将DOM元素内容序列化为字符串,用于Ajax请求. <!DOCTYPE html> <html> <hea ...

  3. 锋利的jQuery读书笔记---jQuery中Ajax--get、post等方法

    load()方法通常用来从Web服务器上获取静态的数据文件,然而这并不能体现ajax的全部价值. 在项目中,如果需要传递一些参数给服务器中的页面,那么可以使用$.get()或者$.post()方法(或 ...

  4. 锋利的jQuery读书笔记---jQuery中Ajax--load方法

    第一个Ajax例子 <!DOCTYPE html> <html> <head lang="en"> <meta charset=" ...

  5. 锋利的jQuery读书笔记---jQuery中动画

    jQuery中的动画: 1.show和hide 2.fadeIn和fadeOut 3.slideUp和slideDown <!DOCTYPE html> <html> < ...

  6. 锋利的jQuery读书笔记---jQuery中的事件

    jQuery中的事件: 1.加载DOM:注意window.onload和$(document).ready()的不同 2.事件绑定 3.合成事件 --2和3的详细信息见代码- <!DOCTYPE ...

  7. 锋利的jQuery读书笔记---jQuery中操作DOM

    一般来说,DOM的操作分为3个方面,即DOM Core.HTML-DOM和CSS-DOM jQuery中的DOM操作主要包括以下种类: 查找节点 查找元素节点 查找属性节点 创建节点 创建元素节点 创 ...

  8. <锋利的jQuery>读书笔记

  9. Javascript & JQuery读书笔记

    Hi All, 分享一下我学JS & JQuery的读书笔记: JS的3个不足:复杂的文档对象模型(DOM),不一致的浏览器的实现和便捷的开发,调试工具的缺乏. Jquery的选择器 a. 基 ...

随机推荐

  1. VS生产的编辑方法和编辑窗体

    MVC5入门学习系列⑤   检查VS生产的编辑方法和编辑窗体 前面我们一步使用强类型,然后创建Controller(控制器)的时候,VS默认已经给我们把CURD都简单的实现了.这篇的话就简单的看下它默 ...

  2. IOS UI 第二篇:基本UI

    1.UI书写:   一个小练习图片如下:     代码如下:     @implementation AppDelegate{    UIControl *control;    UILabel *l ...

  3. C#事件与委托的区别

    C#事件与委托的区别 1. 委托 事件是利用委托来定义的,因此先解释委托.委托是一个类,它与其他类如int,string等没有本质区别,int代表的是所有的整形,而string代表的是字符串,委托则代 ...

  4. FLOYD 求最小环

    首先 先介绍一下 FLOYD算法的基本思想   设d[i,j,k]是在只允许经过结点1…k的情况下i到j的最短路长度则它有两种情况(想一想,为什么):最短路经过点k,d[i,j,k]=d[i,k,k- ...

  5. 于快速创建 IEqualityComparer<T> 实例的类 Equality<T>

    于快速创建 IEqualityComparer<T> 实例的类 Equality<T> 原文中的 Equality<T> 实现如下: 1 2 3 4 5 6 7 8 ...

  6. WPF界面按钮美化

    在App.xaml里加入全局按钮样式 <Application x:Class="WpfButton.App" xmlns="http://schemas.micr ...

  7. 【转】jQuery each函数中的continue及break

    continue :return true; break :return false; 也可以利用return即可跳出jQuery 来源:http://bie.xiaowangge.info/brow ...

  8. 解析Infopath生成的XSN结构

    解析Infopath生成的XSN结构 解压XSN文件,得到下图文件 Infopath包括xsl.xsd.xsf.xml文件格式 Manifest.xsf是infopath的主要集合文件,包含对其他各个 ...

  9. [google面试CTCI] 1-5.替换字符串中特定字符

    [字符串与数组] Q:Write a method to replace all spaces in a string with ‘%20’ 题目:写一个算法将一个字符串中的空格替换成%20 解答: ...

  10. iframe跨域通讯

    工作中遇到一个问题,IFRAME嵌套了一个外部页面用于统计 统计的JS由我们提供,并且需要提供热点图 一开始就碰到的问题就是 不知道页面高度 需要子页面传回页面高度用于将IFRAME拉升到合适高度 当 ...