如果元素存在,则分配不同的值

时间:2013-03-21 00:40:52

标签: jquery

我正在尝试将两个值中的一个赋值给变量,具体取决于元素是否存在。我认为这样的事情应该有用......

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

......但没有。

我知道这应该很简单,但这是漫长的一天。

4 个答案:

答案 0 :(得分:2)

很确定你忘了打电话给你的功能;

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

如果你想优化它,这是一个更好的方法:

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

答案 1 :(得分:2)

如果选择器不匹配任何元素,则outerHeight调用将返回null,并且null为假,因此您应该能够执行以下操作:

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

(我现在无法测试,但我很确定它应该可行。)

答案 2 :(得分:1)

你可以这样做

$(document).ready(function(){
       $('#input_field').val($('#options').length > 0 ? $('#options').outerHeight() : 0);
});

答案 3 :(得分:0)

如果元素不存在jQ('#options')将返回一个空集合,为什么要再检查?