还有个建议是使用google的cdn上的jquery文件,加载速度更快。猛击Google Libraries API 进入查看。 复制代码 代码如下: <!-- Include a specific version of jQuery --> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <!-- Include the latest version in the 1.6 branch --> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
2.保持选择器的简单 这个建议明河非常赞同,有很多朋友不喜欢给元素增加样式或id,希望保持html的简洁,使用jquery强大的选择器去检索元素,这不是好的习惯。首先越复杂的选择器,遍历的效率越低,这是显而易见的,最高效率无疑是使用原生的getElementById();其次,复杂的选择器将标签名称和层级结构固化在里面,假如你的html结构发生了改变,或标签发生了改变,都直接造成检索失败。 复制代码 代码如下: $("li[data-selected="true"] a") // Fancy, but slow $("li.selected a") // Better $("#elem") // Best
访问DOM,是javascript最耗资源和性能的部分,所以尽量避免复杂或重复的遍历DOM。 避免重复遍历DOM的方法就是将$()检索的元素存储到变量,比如下面的代码: 复制代码 代码如下: var buttons = $("#navigation a.button");
// 使用$前缀来标示jquery对象,是非常好的习惯,推荐使用。 复制代码 代码如下: var $buttons = $("#navigation a.button"); var $buttons = $("#navigation a.button");
3.jQuery对象作为数组处理 jQuery对象定义了length属性,当使用数组的形式操作时候返回其实是DOM元素而不是子jQuery对象,比如下面代码。 复制代码 代码如下: // Selecting all the navigation buttons: var buttons = $("#navigation a.button");
5.创建一个空的jQuery对象 这种情况应用场景不多,当你需要先创建个空的jQuery对象,然后使用add()方法向此对象注入jQuery对象时会用到。 复制代码 代码如下: var container = $([]); container.add(another_element);)
6.选择随机元素 应用场景不多,举个例子,现在你需要随机给li增加一个red的class。 需要扩展jquery的选择器,这段代码很好的演示了jQuery.expr的用法。 复制代码 代码如下: (function($){ var random = 0;
$.expr[":"].random = function(a, i, m, r) { if (i == 0) { random = Math.floor(Math.random() * r.length); } return i == random; }; 10. 11.})(jQuery); 12. 13. 14. 15.$("li:random").addClass("glow");
7.使用css钩子 jQuery.cssHooks是1.4.3新增的方法,用的不估计不多,当你定义新的CSS Hooks时实际上定义的是getter和setter方法,举个例子,border-radius这个圆角属性想要成功应用于firefox、webkit等浏览器,需要增加属性前缀,比如-moz-border-radius和-webkit-border-radius。你可以通过定义CSS Hooks将其封装成统一的接口borderRadius,而不是一一设置css属性。 复制代码 代码如下: $.cssHooks["borderRadius"] = { get: function(elem, computed, extra){ // Depending on the browser, read the value of // -moz-border-radius, -webkit-border-radius or border-radius }, set: function(elem, value){ // Set the appropriate CSS3 property } }; 10. 11.// Use it without worrying which property the browser actually understands: 12.$("#rect").css("borderRadius",5);
15.jquery的本地存储 本地存储在现在web应用中使用越来越频繁,jquery有个专门用于本地存储的插件叫$.jStorage jQuery plugin。 复制代码 代码如下: // Check if "key" exists in the storage var value = $.jStorage.get("key"); if(!value){ // if not - load the data from the server value = load_data_from_server(); // and save it $.jStorage.set("key",value); }