0

私を助けてください。私は単一行のjavascript ifステートメントを使用していますが、条件をチェックした後に2つのアクションを実行したいのですが、2番目のステートメントの入れ方がわかりません。セミコロンが効くと思ったのですが、そうではありません。セミコロンはエラーです。これがセミコロン付きの私のコードです...

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(ソース)を使用した実際のです。(私は使用しました、、以下を参照してください)。しかし、真剣に、保守性/読みやすさについては、次のように比較してください。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を使用している場合は、そのメソッドshowhideメソッド(およびおそらくaddClass/ removeClass)を使用します。

于 2013-02-08T06:52:49.693 に答える
0

次のようなdwoifステートメントで実行してみてください。

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