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