0

请帮我。我正在使用单行 javascript if 语句,但我希望它在检查条件后执行两个操作,但我不知道如何放置第二个语句。我认为分号会起作用,但事实并非如此。它说分号是一个错误。这是我的代码,带有分号...

this.className === "unclickedButton" ? this.className = "clickedButton";
 $("#alert").style.display="block" : this.className = "unclickedButton"; 
$("#alert").style.display="none"
4

2 回答 2

7

可以使用逗号运算符执行此操作:

this.className === "unclickedButton" ?
(this.className = ($("#alert").style.display="block", "clickedButton")) :
(this.className = ($("#alert").style.display="none", "unclickedButton"));

...但它不会说它使代码可读。我会使用普通的if.

这是一个使用 jQuery ( source ) 的实时示例。(我使用and ,见下文)。但严肃地说,将可维护性/可读性与以下内容进行比较:showhide

if (this.className === "unclickedButton") {
    this.className = "clickedButton";
    $("#alert").style.display = "block";
}
else {
    this.className = "unclickedButton";
    $("#alert").style.display = "none";
}

我知道我宁愿对哪一个进行维护。或者,如果你想要一个单行,稍微改变 CSS,这样你就有一个button类和一个添加clicked到它的类,然后这样做(我在这里假设 jQuery):

$("#alert").toggle($(this).toggleClass('clicked').hasClass('clicked'));

实例| 资源


旁注:您使用的选择器看起来像您在 jQuery 中使用的选择器,但 jQuery 实例没有style属性。如果您使用 Prototype 或 MooTools,您可能希望#删除alert. 如果您使用的是 jQuery,请使用它的showandhide方法(可能还有addClass/ removeClass)。

于 2013-02-08T06:52:49.693 回答
0

尝试通过这样的 dwo if 语句执行此操作:

    if(statement 1){
        ...
        if(statement 2){
        ...
        }
    }
于 2013-02-08T06:53:26.867 回答