请帮帮我。我使用单行javascript if语句,但我希望它在检查条件后执行两个操作,但我不知道如何放置第二个语句。我认为分号会起作用,但事实并非如此。它说分号是错误的。 这是我的代码,用分号......
this.className === "unclickedButton" ? this.className = "clickedButton";
$("#alert").style.display="block" : this.className = "unclickedButton";
$("#alert").style.display="none"
答案 0 :(得分:7)
您可以使用comma operator:
执行此操作this.className === "unclickedButton" ?
(this.className = ($("#alert").style.display="block", "clickedButton")) :
(this.className = ($("#alert").style.display="none", "unclickedButton"));
...但它不会说它可以实现可读代码。我使用普通的if
。
这是使用jQuery(live example)的source。 (我使用了show
和hide
,见下文)。但严重的是,将可维护性/可读性与可比性进行比较:
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,请使用其show
和hide
方法(可能还有addClass
/ removeClass
)。
答案 1 :(得分:0)
尝试使用dwo if if this:
if(statement 1){
...
if(statement 2){
...
}
}