为什么我的javascript if-else语句不起作用?

为什么我的javascript if-else语句不起作用?,javascript,if-statement,Javascript,If Statement,有人能告诉我下面的代码有什么问题吗?我希望“文本”在单击按钮时可见或不可见。mystyle.css具有: #the_text { visibility: hidden; } 和我的html页面: 显示/隐藏 我想通过按下上面的按钮来隐藏这个 函数check\u this\u out(){ var vis_或_hidden=document.getElementById(“_文本”); 如果可视或隐藏。样式[“可见性”]=“隐藏” {vis_或_hidden.style[“可见性”]=

有人能告诉我下面的代码有什么问题吗?我希望“文本”在单击按钮时可见或不可见。mystyle.css具有:

#the_text {
    visibility: hidden;
}
和我的html页面:


显示/隐藏
我想通过按下上面的按钮来隐藏这个
函数check\u this\u out(){
var vis_或_hidden=document.getElementById(“_文本”);
如果可视或隐藏。样式[“可见性”]=“隐藏”
{vis_或_hidden.style[“可见性”]=“可见”}
其他的
{vis_或_hidden.style[“可见性”]=“隐藏”}
}

函数的定义存在一些问题

  • 第一个是语法错误,因为条件周围需要括号

    if (vis_or_hidden.style["visibility"] = "hidden")
    
  • 第二个是,条件实际上是,而不是

    注意:
    如果
    语句不需要布尔条件,则不会在它们之间突出显示类型错误。但是,由于无法将文字指定给,因此反转操作数可以:

    if ("hidden" = vis_or_hidden.style["visibility"])
    // ReferenceError: Invalid left-hand side in assignment
    
    vs

    if ("hidden" == vis_or_hidden.style["visibility"])
    
  • 最后一个是DOM的常见问题,因为它只表示元素自己的内联样式,并且它还没有自己的
    可见性。要包含从样式表继承的样式,您必须确定:

    但是,请注意,
    getComputedStyle()
    在中不受支持。为了实现跨浏览器兼容性,您必须加入

    一个选择是。另一个是。但是,还有许多其他垫片和多填料可用


示例:(注意使用
onclick
时的
No wrap
选项)

=
进行赋值,
=
==
进行比较。如果(vis_或_hidden.style[“visibility”]==“hidden”)也包含内联样式的值。对于从样式表继承的值,您必须获得。谢谢。但为什么在定义时我会得到“未捕获引用错误:签出此未定义”?谢谢你的反对票,不管是谁。很抱歉,我不是你们这些天才。@user3481992在
函数
定义中的
if
语句有语法错误,因此它无法用于
onClick
。有一些验证器可以帮助解决问题,例如。感谢您提供全面的答案。毫无疑问,我会在头脑清醒时把它标记正确。我仍然在讲“=”和“=”,这很奇怪,因为到目前为止“=”对我有效,而“=”对我无效。@user3481992它在某种程度上仍然有效,因为赋值返回要测试的
if
的赋值。因此,如果(“隐藏”)
,则条件变为
。而且,由于
“hidden”
是一个非空字符串,因此它被认为是真实的(如,
布尔(“hidden”)==true
)。但是,条件将始终通过,因此不会执行
else
块。太棒了,您的代码工作得很好,现在我将尝试理解=、==和===之间的区别。“无包装”选项是什么意思?我查看了您的JSFIDLE,在这方面看不到任何东西。@user3481992在菜单左侧的“框架与扩展”下。这是JSFIDLE特有的东西,但是默认选择的
onLoad
可能与
On*
属性冲突,如
onclick
。啊,是的,明白你的意思了。
if ("hidden" = vis_or_hidden.style["visibility"])
// ReferenceError: Invalid left-hand side in assignment
if ("hidden" == vis_or_hidden.style["visibility"])
if (window.getComputedStyle(vis_or_hidden)["visibility"] == "hidden")