在jQuery中优化DOM选择

在jQuery中优化DOM选择,jquery,jquery-plugins,jquery-selectors,Jquery,Jquery Plugins,Jquery Selectors,这是一个逗号 我不熟悉JavaScript/jQuery插件 如何为下面的脚本和DOM选择创建jQuery插件可以进行更多优化 var option = {"N":"None","F":"Friends","FF":"Friends of Friends","E":"Everybody"} $("#uiSettingsPanel").find(".head").click(function(){ $("#uiSettingsPanel").find(".csli").slideUp()

这是一个逗号

我不熟悉JavaScript/jQuery插件

如何为下面的脚本和DOM选择创建jQuery插件可以进行更多优化

var option = {"N":"None","F":"Friends","FF":"Friends of Friends","E":"Everybody"}

$("#uiSettingsPanel").find(".head").click(function(){
    $("#uiSettingsPanel").find(".csli").slideUp();
    $(this).parent().find('.csli').slideDown("slow");   
});

$("#uiSettingsPanel .sli .privacy .row .caption").click(function(){
    $("#uiSettingsPanel .sli .privacy .row .caption")
              .parent().find(".body").slideUp("slow");

    $(this).parent().find(".body").toggle("slow");  
});

$("#uiSettingsPanel .sli .privacy .row .body select").change(function(){
    $(this).parent().parent().parent().find(".caption .right div")
         .html("<span class='wait'>Please wait...</span>");
        var val = $(this).val();

        var it = $(this);
        setTimeout(function() {
            it.parent().parent().parent()
                 .find(".caption .right div").html(option[val]);
        },4000);    
    });
var option={“N”:“None”,“F”:“Friends”,“FF”:“Friends of Friends”,“E”:“Everybody”}
$(“#uiSettingsPanel”)。查找(“.head”)。单击(函数(){
$(“#uiSettingsPanel”).find(“.csli”).slideUp();
$(this.parent().find('.csli').slideDown(“slow”);
});
$(“#uiSettingsPanel.sli.privacy.row.caption”)。单击(函数(){
$(“#uiSettingsPanel.sli.privacy.row.caption”)
.parent().find(“.body”).slideUp(“slow”);
$(this.parent().find(“.body”).toggle(“slow”);
});
$(“#uiSettingsPanel.sli.privacy.row.body select”).change(函数(){
$(this.parent().parent().parent().find(“.caption.right div”)
.html(“请稍候…”);
var val=$(this.val();
var it=$(本);
setTimeout(函数(){
it.parent().parent().parent()
.find(“.caption.right div”).html(选项[val]);
},4000);    
});

首先,您可以缓存选择器,然后使用find()缩小选择范围

像这样:

var uiSettingsPanel = $("#uiSettingsPanel");
var row = uiSettingsPanel.find('.sli .privacy .row');

var caption = row.find('.body .caption');
您应该考虑一种解理方法来减少DOM选择的数量和范围

还避免每次在事件处理程序中选择DOM(获取元素一次,然后缓存它们)

查看您的代码,我认为您将能够减少.parent()调用。

执行以下操作:。优化代码的许多技巧。