Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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_Ternary Operator - Fatal编程技术网

Javascript 三元语句不工作

Javascript 三元语句不工作,javascript,ternary-operator,Javascript,Ternary Operator,在上面的代码中,我在第4、5、8和9行旁边得到了以下错误消息: “应为赋值或函数调用,而应为表达式。” 我以前从未遇到过这个问题,如果我只是更改document.getElementById('nav')。className=='open'?'关闭':'打开'todocument.getElementById('nav')。className='open',工作正常。我做错了什么?您没有将三元返回值赋给任何对象。您需要执行以下操作: document.getElementById('nav')。

在上面的代码中,我在第4、5、8和9行旁边得到了以下错误消息:

“应为赋值或函数调用,而应为表达式。”


我以前从未遇到过这个问题,如果我只是更改
document.getElementById('nav')。className=='open'?'关闭':'打开'
to
document.getElementById('nav')。className='open',工作正常。我做错了什么?

您没有将三元返回值赋给任何对象。您需要执行以下操作:

document.getElementById('nav')。className=document.getElementById('nav')。className=='open'?'关闭':'打开'

下面是一个更容易理解的例子:

1.  document.getElementById('navButton').addEventListener('click', toggleNav);
2.  document.getElementById('menuButton').addEventListener('click', toggleMenu);
3.  function toggleNav(){
4.    document.getElementById('nav').className == 'open' ? 'closed' : 'open';
5.    document.getElementById('navButton').className == 'open' ? 'closed' : 'open';
6.  }
7.  function toggleMenu(){
8.    document.getElementById('menu').className == 'open' ? 'closed' : 'open';
9.    document.getElementById('menuButton').className == 'open' ? 'closed' : 'open';
10. }

我觉得自己好笨。谢谢你,哈哈,我已经有一段时间没写任何东西了,别担心!实际上,犯这样的错误是很常见的:)我强烈建议将
document.getElementById(“someId”)
存储在一个变量中,以便于访问,而不是每次都写一堆文本。这不仅是为了便于使用,而且是因为当有一个变量的名称描述它是什么时,它更容易阅读和理解。@Tiagamariho非常正确!我用它作为一个例子,因为添加其他东西可能会从作业缺失的要点中删除。缓存引用是一个好主意,尤其是在频繁使用的情况下。
var elvisLives = Math.PI > 4 ? "Yep" : "Nope";
    ^^^^^^^^^^   ^^^^^^^^^^^   ^^^^^   ^^^^^^^
//  assignment    condition    expr1    expr2