2016-12-13 8 views
1

省略形のJavascriptは素晴らしいですが、条件の成否に応じて、この省略形の条件を1ステップ進めることが可能かどうかは疑問です。例えば。このテイク:簡略化された条件文からブール値を取得

$('#col-URL-defaultText').css('display', ((val!==null && val!=="") ? 'none' : 'block')); 

をし、このようなものを作成します。

var empty = $('#col-URL-defaultText').css('display', ((val!==null && val!=="") ? 'none' : 'block')); 

(^以上に障害が発生したが、うまくいけば、あなたは私が^達成しようとしていますものを手に入れる)

+2

'Boolean empty'? JavaScriptの種類はありません –

+2

多分あなたはこれが欲しいですか? –

+1

'empty'変数には、' .css() '関数の戻り値があります。これはjQueryオブジェクトです。 – empiric

答えて

0

はい、結果の表示属性が何であるかをテストすることができます。変数に代入する:

最後に「ブロック」または「なし」に対してテストするかどうかはわかりません。

+0

これを行う正しい方法をありがとう。私は 'ブール'の代わりに 'var'を使って動作させましたが、あなたは私の実際の質問に答えることができました。 –

+0

何か問題がないかどうかを知りたい場合はどうすればいいですか?これらの「開発者」の負荷は、自分の頭を自分のものにして、自分のやり方が常に正しいと信じるよりも、あなたのような代替ソリューションを試す必要があります –

3

割り当て変数との使用につながりますそれ以降:

+0

より少ない行がより品質に等しくないので、+ 1 –

+0

もう一つの解決策をありがとう。私はこれがうまくいくことがわかりますが、それは元の質問を完全に無視してしまいました。私は一行の解決策があれば知りたかった@Brianは卑劣な哲学的なコメントではない –

+0

@JonathanHillそれはまったくsnobbyではない、私は深刻な死んでいる。あなたのコードは、1行に何かをするだけでは良くないでしょう。実際には1ヶ月にプロジェクトを再訪する必要があるときは、おそらくそれが何であるか分からないので、実際にはもっと悪くなります...また、行を削除するだけです。 –

0

あなたが本当に単一の行にすべてをしたい場合は、匿名関数の内部ですべてをラップすることにより、構文を乱用できます

var notEmpty = (function(b){ $(....).css('display', b ? "none" : "block"); return b })(val !== null && val !== ''); 

しかし、率直に言って、私はoryol's answerを好むだろう。それはより読みやすい方法です。

0

function .css( 'display'、...)を使用する代わりに、 hide関数とshow関数を使用することができます。

関連する問題