JavaScript 中缺少括号错误

missing parenthesis error in javascript

本文关键字:错误 JavaScript      更新时间:2023-09-26

我正在使用这个函数:

function sel_test(e) {
  //alert(e.length-1);
  var splitdata = e.split("d");
  var newstr = e.substring(0,e.length-1);
  dropcall = 1;
  nodes = newstr.split(';');
  o = 0;
  if (nodes[0] == '1') o = nodes.shift();
  for (i=0;i<nodes.length;i++) {
    e = nodes[i];
    var ul = document.getElementById(e);
    if (icons) var img = document.getElementById(e+'i');
    if (ul) {
      if (((ul == 'none') AND (ul.style.display == 'none')) OR (ul.style.display == '')) {
        ul.style.display = 'block';
      } else if (!o) {
        ul.style.display = 'none';
      }
    }
  }

JavaScript给了我一个缺少括号的错误:

if (((ul == 'none') AND (ul.style.display == 'none')) OR (ul.style.display == '')) {

这是什么正确的方法。

你应该使用 && 和 || 而不是 AND 和 OR。

不应该吗?

试试这个:

if (((ul == 'none') && (ul.style.display == 'none')) || (ul.style.display == ''))

JavaScript 有一个 AND 运算符,但它不是单词 AND,它是 &&(也是 & ,表示按位 and)。同样,而不是您想要OR ||(或按位|)。

请注意,您的 ul 变量永远不会等于字符串'none' - 来自 document.getElementById(e) 的返回将始终是匹配的 DOM 元素,如果没有元素具有提供的 id,则返回null

延伸阅读:逻辑运算符(你应该阅读它,因为&&||并不总是返回truefalse,MDN 解释了这一点)。

您还缺少函数的右旋线。