Javascript三值用户错误?

Javascript三值用户错误?,javascript,ternary,Javascript,Ternary,所以我想做的是制作一个脚本来显示和隐藏YouTube视频的标题,而我的脚本所做的只是将其默认设置为不显示任何内容,我不希望它这样做,而且似乎onclick函数也不起作用。我真的不知道我做错了什么。。。一切似乎都应该起作用 以下是脚本: function titleToggle() { eowTitle = document.getElementById('eow-title'); watch7Headline = document.getElementById('watch7-h

所以我想做的是制作一个脚本来显示和隐藏YouTube视频的标题,而我的脚本所做的只是将其默认设置为不显示任何内容,我不希望它这样做,而且似乎onclick函数也不起作用。我真的不知道我做错了什么。。。一切似乎都应该起作用

以下是脚本:

function titleToggle() {
    eowTitle = document.getElementById('eow-title');
    watch7Headline = document.getElementById('watch7-headline');
    eowTitle.style.display = 'inline-block';
    (eowTitle.style.display == 'none') ? watch7Headline.onclick = eowTitle.style.display = 'inline-block' : watch7Headline.onclick = eowTitle.style.display = 'none';
}
titleToggle();
您需要将“onclick”属性设置为函数。如果您真的想使用
?:,您最好这样做:

watch7Headline.onclick = function() {
  eowTitle.style.display = (eowTitle.style.display == 'none') ? 'inline-block' : 'none';
};

似乎运算符优先级有问题。即检查
=
的优先级:
为什么分配
'inline-block'
,然后检查它是否为
='none'
?您的问题描述不是很清楚。期望的行为是什么?当他们单击watch7 headline元素时,它应该根据元素的当前显示隐藏或显示eow标题。非常感谢。这起作用了。我从未想过使用eowTitle.style.display=(然后是三元语句)来压缩它。。下次我会记住这一点。@Bren,事实上,您这样做也会在jshint中引起错误(您应该将三元运算符的结果赋给一个变量)