-1

要素が存在するかどうかに応じて、2 つの値のいずれかを変数に割り当てようとしています。私はこのようなものがうまくいくはずだと思った...

$optsH = function(){
    if ( jQ('#options').length > 0 ) {
        return jQ('#options').outerHeight();
    } else {
        return 0;
    }
}

...しかし、いいえ。

これは簡単なはずですが、長い一日でした。

4

4 に答える 4

2

関数を呼び出すのを忘れただけです。

$optsH = (function(){
    if ( jQ('#options').length > 0 ) {
        return jQ('#options').outerHeight();
    } else {
        return 0;
    }
})()

ただし、最適化したい場合は、これがはるかに優れた方法です。

$optsH = jQ('#options').outerHeight() || 0;
于 2013-03-21T00:43:00.747 に答える
2

セレクターが要素と一致しない場合、outerHeight呼び出しは null を返し、null は偽であるため、次のようなことができるはずです。

$optsH = jQ('#options').outerHeight() || 0;

(今はテストできませんが、うまくいくはずです。)

于 2013-03-21T00:47:32.457 に答える
1

あなたはこのようにすることができます

$(document).ready(function(){
       $('#input_field').val($('#options').length > 0 ? $('#options').outerHeight() : 0);
});
于 2013-03-21T00:42:53.507 に答える
0

要素が存在しない場合jQ('#options')、空のコレクションが返されますが、なぜ別のチェックが行われるのでしょうか?

于 2013-03-21T00:42:57.943 に答える