0

我正在使用这个功能:

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 == '')) {

这是做什么的正确方法。

4

3 回答 3

4

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

你不应该吗?

于 2012-05-30T00:09:05.287 回答
3

试试这个:

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

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

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

进一步阅读:逻辑运算符(你应该阅读它,因为并不总是返回or&&并且MDN 对此进行了解释)。||truefalse

于 2012-05-30T00:08:57.653 回答
0

您还缺少该函数的结束权。

于 2012-05-30T00:14:18.747 回答