JavaScript 在一个 if 语句上执行多个操作

javascript multiple actions on one if statement

本文关键字:语句 执行 操作 if 一个 JavaScript      更新时间:2023-09-26

我想做的可以总结为:"如果满足这个条件,那么做以下多个动作。 我的代码对于要完成的第一件事工作正常,但是当我添加要执行的其他操作时,我收到"未捕获的语法错误:意外的令牌其他"错误。 我将在下面注意问题行。

function turnonall(cl) {
    var elements = document.getElementsByClassName(cl);
      for (var i = 0; i < elements.length; i++){
        if (elements[i].style.display == 'none' || elements[i].style.display == '' || elements[i].style.display == 'block')
        elements[i].style.display = 'block';
        elements[i].style.className = 'buttonactive';  <--this line is throwing the error.
        else
        elements[i].style.display = 'none';
      }
  }

您的if/else语句的签名不正确。您尝试的内容仅适用于if语句中具有一行的if/else语句。将多行添加到无括号if/else后,需要括号

只需将您的 if 和 else 块括在括号中,如下所示:

function turnonall(cl) {
  var elements = document.getElementsByClassName(cl);
  for (var i = 0; i < elements.length; i++) {
    if (elements[i].style.display == 'none' || elements[i].style.display == '' || elements[i].style.display == 'block') {
      elements[i].style.display = 'block';
      elements[i].style.className = 'buttonactive';
    } else {
      elements[i].style.display = 'none';
    }
  }
}

但是,您并非100%不正确。例如,这是有效的 JavaScript:

if (true)
  console.log('it is true')
else
  console.log('it is not true')

但这不是

if (true)
  console.log('it is true')
  console.log('and I like it')
else
  console.log('it is not true')
function turnonall(cl) {
    var elements = document.getElementsByClassName(cl);
      for (var i = 0; i < elements.length; i++){
        if (elements[i].style.display == 'none' || elements[i].style.display == '' || elements[i].style.display == 'block')
        {  // Bracket!
            elements[i].style.display = 'block';
            elements[i].style.className = 'buttonactive';  <--this line is throwing the error.
        }  // Bracket!
        else
            elements[i].style.display = 'none';
      }
  }