-1

我正在尝试将两个值之一分配给变量,具体取决于元素是否存在。我认为这样的事情应该工作......

$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 回答