1.选择器
$("#myId"); // 多少还是会逊色于...
document.getElementById("myId");
2.选择器
var $products = $("div.products"); // 慢
var $products = $(".products"); // 快
3.选择器
$("div.data .gonzalez"); // 丑陋
$(".data td.gonzalez"); // 优化后
4.选择器
$('.class');// 劣质的代码:因为需要遍历整个DOM来找到.clas
$('.class', '#class-container');// 高品代码:因为只需在指定容器范围内进行查找
5.选择器
$('div.container > *'); // 差
$('div.container').children(); // 棒
5.选择器
$('div.someclass :radio'); // 差
$('div.someclass input:radio'); // 棒
关于append,以后尽量用第三种方法
// 这样不好
var $myList = $("#list");
for(var i = 0; i < 10000; i++){
$myList.append("<li>"+i+"</li>");
}
// 这样好
var $myList = $("#list");
var list = "";
for(var i = 0; i < 10000; i++){
list += "<li>"+i+"</li>";
}
$myList.html(list);
// 但这样更好
var array = [];
for(var i = 0; i < 10000; i++){
array[i] = "<li>"+i+"</li>";
}
$myList.html(array.join(''));
6.做好缓存
糟糕的做法
jQuery('#top').find('p.classA');
jQuery('#top').find('p.classB');
更好的写法
var cached = jQuery('#top');
cached.find('p.classA');
cached.find('p.classB');
7.事件的委托处理
一般
$("td").on("click", function(){
$(this).toggleClass("click");
});
更好
$("table").on("click", "td", function(){
$(this).toggleClass("click");
});
借鉴文章:
http://www.ruanyifeng.com/blog/2011/08/jquery_best_practices.html
已有 0 条评论