JavaScript三元语句

JavaScript三元语句,javascript,Javascript,我做错了什么?您需要添加一个false作为第三个参数。大多数情况下,它默认为false,但最好是安全一点 document.getElementById('navBtn')。addEventListener('click',函数(){ document.getElementById('navBtn').style.backgroundColor='blue'; document.getElementById('navBtn')。className=document.getElementById

我做错了什么?

您需要添加一个
false
作为第三个参数。大多数情况下,它默认为
false
,但最好是安全一点

document.getElementById('navBtn')。addEventListener('click',函数(){
document.getElementById('navBtn').style.backgroundColor='blue';
document.getElementById('navBtn')。className=document.getElementById('navBtn')。className='x'?'o':'x';
document.getElementById('nav')。className=document.getElementById('nav')。className=='x'?'o':'x';
},假)
.x{
颜色:#ccf;
}
o{
颜色:#cfc;
}
Hi

再见
“我做错了什么?”——这取决于您期望和希望JavaScript做什么以及它正在做什么。请:阅读“”和“”指南。三者本身看起来不错。您可能希望使用
===
而不是
=
,但构造是正确的。仅供参考,您可以在处理程序中使用
而不是
文档。getElementById('navBtn')
。“对于某些浏览器…”真的吗?“哪一个?”我在某处读到了。获取来源。寻找它。我肯定知道这是个问题。因为就我个人而言,我面临着这一问题。可能会出现操作员优先级问题,但这并不取决于浏览器。我同意,在回答之前要等待,而不是抛出极不可能的猜测,这只会混淆问题。这就是为什么建议不要回答这些类型的问题,这也是为什么封闭式或搁置式问题不允许回答的原因。无法验证任何数量的更改是否会导致OP的微小示例在其实际上下文中工作。
document.getElementById('navBtn').addEventListener('click', function(){
    document.getElementById('navBtn').style.backgroundColor = 'blue';
    document.getElementById('navBtn').className = document.getElementById('navBtn').className == 'x' ? 'o' : 'x';
    document.getElementById('nav').className = document.getElementById('nav').className == 'x' ? 'o' : 'x';
});