Javascript 如何使用jquery选择器编写if/else?

Javascript 如何使用jquery选择器编写if/else?,javascript,jquery,Javascript,Jquery,我需要在一行中编写简单的if/else,并使用jQuery选择器编写更简单的if/else。我怎么做 我的表单中有一个名为chkAgree的复选框。我正在尝试处理它的点击事件,如下所示。我希望只使用一次jQuery选择器就可以更简单地编写此代码块。我的IDE警告我“复制了jQuery选择器”,所以我认为有一种方法可以解决这个问题。 问候 您应该将选择器值存储在变量中,并出于性能原因在回调函数之外进行存储,例如: var divCheckboxes = $("#divCheckboxes"); $

我需要在一行中编写简单的if/else,并使用jQuery选择器编写更简单的if/else。我怎么做

我的表单中有一个名为
chkAgree
的复选框。我正在尝试处理它的点击事件,如下所示。我希望只使用一次jQuery选择器就可以更简单地编写此代码块。我的IDE警告我“复制了jQuery选择器”,所以我认为有一种方法可以解决这个问题。 问候


您应该将选择器值存储在变量中,并出于性能原因在回调函数之外进行存储,例如:

var divCheckboxes = $("#divCheckboxes");
$("#chkAgree").click(function(){
  if(this.checked){
    divCheckboxes.show();
  }else{
    divCheckboxes.hide();
  }
});

使用on.click而不是click,否则它只会在第一次使用时起作用

var divCheckboxes = $("#divCheckboxes");
$("#chkAgree").on("click", function(){
   this.checked ? divCheckboxes.show() : divCheckboxes.hide();
});

像那样。但更好的是:
$(“#chkAgree”).on(“click”,function(){$(“#divcheckbox”).toggle(this.checked);}
//或者使用与@mplungjan一致的“change”,尽管我建议使用
change
作为复选框,而不是
click
复数“divcheckbox”是可疑的-您知道ID需要唯一吗?如果您有多个id为“divcheckbox”的元素,那么您需要使用一个类来代替
$(“#chkAgree”)。在(“单击”,function(){$(“#divcheckbox”)。切换(this.checked);}
这仍然会导致问题试图避免的“重复jQuery选择器”错误。
$(“#chkAgree”)。在(“单击”,function()$(“#divcheckbox”)).toggle(this.checked);})
这个也可以,但是我仍然建议您将它们保存在变量中(在我的示例中是第一行),以避免每次调用函数时都在回调中查询DOM。每次访问最多会调用两次
var divCheckboxes = $("#divCheckboxes");
$("#chkAgree").click(function(){
  if(this.checked){
    divCheckboxes.show();
  }else{
    divCheckboxes.hide();
  }
});
var divCheckboxes = $("#divCheckboxes");
$("#chkAgree").on("click", function(){
   this.checked ? divCheckboxes.show() : divCheckboxes.hide();
});