摘要: 每次申明一个jQuery对象的时候,返回的是jQuery.prototype.init对象,很多人就会不明白,init明明是 jQuery.fn的方法啊,实际上这里不是方法,而是init的构造函数,因为js的prototype对象可以实现继承,加上js的对象只是引用不会 是拷贝,new jQuery,new jQuery.fn和new jQuery.fn.init的子对象是一样的,只是有没有执行到init的不同。当我们使用选择器的时候$(selector,content),就会执行init(selectot,content),我们看看inti中是怎样执行的:JavaScript代码if(typ 阅读全文
posted @ 2011-10-12 23:59 蝌蚪归来 阅读(999) 评论(0) 推荐(0) 编辑
摘要: JavaScript实现多维数组、对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序。sort() 方法用于对数组的元素进行排序。语法如下:JavaScript代码arrayObject.sort(sortby); 返回值为对数组的引用。请注意,数组在原数组上进行排序,不生成副本。如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数 阅读全文
posted @ 2011-10-12 23:44 蝌蚪归来 阅读(2264) 评论(1) 推荐(0) 编辑
摘要: 大家都知道jQuery(JQ)是基于js的代码封装,性能肯定不如原生js好,尤其是DOM操纵部分性能差异明显。今天要研究的就是原生js和jQuery的DOM操作函数在主流浏览器中的性能差异究竟是多少,是否真的差距明显。测试平台:E5400+2G DDR2+Windows 7 SP1 32bit参与测试的浏览器有:FireFox: 3.6.3IE6IE8Chrome: 10.0.648Safari: 5.0.1Opera: 10.01测试方法:对于一次处理一个对象的函数,循环执行3000次,对于批量处理函数,一次处理3000个对象。结果见下图,时间单位是毫秒:结果分析:大部分时候,原生js的确比 阅读全文
posted @ 2011-10-12 23:02 蝌蚪归来 阅读(730) 评论(0) 推荐(0) 编辑
摘要: 1.使用最新版本的jQueryjQuery的版本更新很快,你应该总是使用最新的版本。因为新版本会改进性能,还有很多新功能。下面就来看看,不同版本的jQuery性能差异有多大。这里是三条最常见的jQuery选择语句: $('.elem') $('.elem', context) context.find('.elem')我们用1.4.2、1.4.4、1.6.2三个版本的jQuery测试,看看浏览器在1秒内能够执行多少次。结果如下:可以看到,1.6.2版本的运行次数,远远超过两个老版本。尤其是第一条语句,性能有数倍的提高。其他语句的测试,比如.att 阅读全文
posted @ 2011-10-12 22:59 蝌蚪归来 阅读(842) 评论(0) 推荐(1) 编辑
摘要: var arr=[]; for(var i=0;i<100;i++){ arr[i]=i; } arr.sort(function(){ return 0.5 - Math.random() }) var str=arr.join(); alert(str);代码解释:var arr=[];//新建一个数组 这是大家推荐的方式。//而不推荐使用 var arr=new Array();这句不用解释了。for(var i=0;i<100;i++){ arr[i]=i; }//循环给数组赋值关键... 阅读全文
posted @ 2011-10-12 14:40 蝌蚪归来 阅读(287) 评论(0) 推荐(0) 编辑
摘要: javascript是比较容易学的。但是,对于这门语言需要有一些值得注意的地方。本文将指出javascript编程中可能犯过的10个错误错误1-使用全局变量如果你刚开始javascript编程,可能会觉得全局变量很好用。事实上,刚开始javascript编程,你可能不知道使用全局变量会带来什么麻烦。在同一个页面中,全局变量可以在任何内嵌的javascript代码段中或是该页面加载的不同的js文件中,都能访问到。这听起来很强大,是吗?这就使得全局变量可以随时随地的被修改赋值。事实上这样很糟!这样做会导致变量在意料之外被修改重写。假设有一个网店,需要用javascript计算并显示购物车所有商品的 阅读全文
posted @ 2011-10-12 11:40 蝌蚪归来 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 一、使用自定义选择器jQuery允许我们在css选择器的基础上定义自定义选择器来让我们的代码更简洁:$.expr[':'].mycustomselector=function(element, index, meta, stack){//element- DOM元素//index - 堆栈中当前遍历的索引值//meta - 关于你的选择器的数据元//stack - 用于遍历所有元素的堆栈//包含当前元素则返回true//不包含当前元素则返回false};//自定义选择器的应用:$('.someClasses:test').doSomething();下面让我们来 阅读全文
posted @ 2011-10-12 11:20 蝌蚪归来 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 将jquery对象缓存起来在for循环中,不要每次都要访问数组的length属性,我们应该先将对象缓存进一个变量然后再操作,如下所示:复制代码代码如下:var myLength = myArray.length;for (var i = 0; i < myLength; i++) {// 要做的事}在循环外使用append进行DOM操作是有代价的,如果需要往DOM中添加大量元素,你应该一次批量完成,而不是一次一个。复制代码代码如下:// 别这样$.each(reallyLongArray, function(count, item) {var newLI = '<li> 阅读全文
posted @ 2011-10-12 11:18 蝌蚪归来 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 如果说jQuery一个不好的地方的话,那就是他的入门门槛太低了。因此吸引了很多没有一定JavaScript知识基础当然人。造成的局面就是,一方面,这样很好,而在另一方面,也造成一种混乱的,更直接的说是令人生厌的代码(其中有些自己也写过)。但是没关系,写出让你的祖母惊愕的代码是你走向专业的开始。关键是要越过这一步,这也是本文今天要讨论的。1. 返回jQuery对象的方法记住大多数方法都会返回jQuery对象很关键。这一特性十分有用,允许我们使用连接特性,也是我们经常利用的。$someDiv.attr('class','someClass').hide().html 阅读全文
posted @ 2011-10-12 11:05 蝌蚪归来 阅读(353) 评论(1) 推荐(0) 编辑
摘要: 1.总是从ID选择器开始继承以下是引用片段:<div id="content"><form method="post" action="#"><h2>交通信号灯</h2><ul id="traffic_light"><li><input type="radio" class="on" name="light" value="red" /> 红色</ 阅读全文
posted @ 2011-10-12 11:00 蝌蚪归来 阅读(570) 评论(0) 推荐(0) 编辑