Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据Javascript中的复选框显示或消失的按钮_Javascript_Checkbox - Fatal编程技术网

根据Javascript中的复选框显示或消失的按钮

根据Javascript中的复选框显示或消失的按钮,javascript,checkbox,Javascript,Checkbox,我在一个包含复选框的表中有一列,这样用户可以单击多行并删除数据。通过使用for循环,我成功地在单击框时显示了一个delete按钮。我正在努力解决的是,当用户取消选中所有复选框时,如何使按钮消失。我把头撞在墙上的时间比我想承认的要长,而且我以前没有发现任何有用的问题。提前感谢您的任何意见 function memDeleteButton() { // Pass the checkbox name to the function let checkboxes = $('input[n

我在一个包含复选框的表中有一列,这样用户可以单击多行并删除数据。通过使用for循环,我成功地在单击框时显示了一个delete按钮。我正在努力解决的是,当用户取消选中所有复选框时,如何使按钮消失。我把头撞在墙上的时间比我想承认的要长,而且我以前没有发现任何有用的问题。提前感谢您的任何意见

function memDeleteButton() {
    // Pass the checkbox name to the function
    let checkboxes = $('input[name=members]:checked');
    let deleteButton = document.getElementById("memDeleteSelected");

    // loop over all of the checkboxes
    for (let i = 0; i < checkboxes.length; i++) {

        if (checkboxes[i].checked = true) {
            deleteButton.style.display = "inline";

        }
        else if (checkboxes[i].checked = false) {
            deleteButton.style.display = "none";
        }
    }
}
函数memDeleteButton(){
//将复选框名称传递给函数
让复选框=$('input[name=members]:checked');
让deleteButton=document.getElementById(“memDeleteSelected”);
//循环所有复选框
for(设i=0;i
让复选框=$('input[name=members]:checked')

您只选择此处选中的复选框

document.getElementById(“memDeleteSelected”)

如果您使用的是JQuery,那么为什么不保持一致性呢

复选框[i]。选中=true

您可以使用此语句选中复选框<代码>=
这是赋值运算符。您可以在此处使用相等运算符
==

复选框[i]。选中的
返回一个布尔值,因此可以删除相等运算符,因为这将是true或false

function memDeleteButton() {
  let checkboxes = $('input[name=members]'),
    deleteButton = $('#memDeleteSelected');

  for (let i = 0; i < checkboxes.length; i++) {
    if (checkboxes[i].checked) {
      deleteButton.show();
    } else if (!checkboxes[i].checked) {
      deleteButton.hide();
    }
  }
}
函数memDeleteButton(){
让复选框=$('input[name=members]'),
deleteButton=$(“#memDeleteSelected”);
for(设i=0;i
您的查询选择器
'input[name=members]:checked'
仅选择选中的复选框,因此如果再次选中则检查的if语句没有意义。
if(复选框[i].checked=true){
看起来像一个bug。这是一个赋值语句,总是正确的。请使用
==
进行比较,并避免使用
if(条件===true)
模式,除非您真的想禁止除
true
if(条件)之外的所有真实结果
更清楚了。@ggorlen我想补充一下解释:)谢谢你的精彩解释。我想很清楚我是多么的新,我感谢你的帮助。