首页 > 解决方案 > jQuery,重复选择器

问题描述

我有这段代码警告我$("#demo-select")选择器的重复使用:

    let demoSelect = $("#demo-select").val();
        if (demoSelect){

            $('#days_count').show();
        }

        $("#demo-select").change(function(){
            if (this.value){
                $('#days_count').show();
            } else {
                $('#days_count').hide();
            }

        });

我怎样才能编写该代码以免重复它?

标签: javascriptjquery

解决方案


您会收到警告,因为在 DOM 中查询选择器非常昂贵。

因此,您应该缓存 jQuery 对象的副本,然后在需要时引用它。

let $demoSelect = $("#demo-select");
let demoSelectVal = $demoSelect.val();

if (demoSelectVal){
  $('#days_count').show();
}

$demoSelect.change(function(){
  if (this.value){
    $('#days_count').show();
  } else {
    $('#days_count').hide();
  }
});

推荐阅读