三元语句不起作用
Ternary statement not working
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. }
在上面的代码中,我在第 4、5、8 和 9 行旁边收到以下错误消息:
"Expected an assignment or function call and instead saw an expression."
我以前从来没有遇到过这个问题,如果我把document.getElementById('nav').className == 'open' ? 'closed' : 'open';
改成document.getElementById('nav').className = 'open';
就可以了。我做错了什么?
您没有将三元 return 值分配给任何东西。您需要执行以下操作:
document.getElementById('nav').className = document.getElementById('nav').className == 'open' ? 'closed' : 'open';
这是来自 MDN 的一个更容易理解的例子:
var elvisLives = Math.PI > 4 ? "Yep" : "Nope";
^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^
// assignment condition expr1 expr2
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. }
在上面的代码中,我在第 4、5、8 和 9 行旁边收到以下错误消息:
"Expected an assignment or function call and instead saw an expression."
我以前从来没有遇到过这个问题,如果我把document.getElementById('nav').className == 'open' ? 'closed' : 'open';
改成document.getElementById('nav').className = 'open';
就可以了。我做错了什么?
您没有将三元 return 值分配给任何东西。您需要执行以下操作:
document.getElementById('nav').className = document.getElementById('nav').className == 'open' ? 'closed' : 'open';
这是来自 MDN 的一个更容易理解的例子:
var elvisLives = Math.PI > 4 ? "Yep" : "Nope";
^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^
// assignment condition expr1 expr2