我正在尝试将两个值之一分配给变量,具体取决于元素是否存在。我认为这样的事情应该工作......
$optsH = function(){
if ( jQ('#options').length > 0 ) {
return jQ('#options').outerHeight();
} else {
return 0;
}
}
... 但不是。
我知道这应该很简单,但这是漫长的一天。
我正在尝试将两个值之一分配给变量,具体取决于元素是否存在。我认为这样的事情应该工作......
$optsH = function(){
if ( jQ('#options').length > 0 ) {
return jQ('#options').outerHeight();
} else {
return 0;
}
}
... 但不是。
我知道这应该很简单,但这是漫长的一天。
很确定你只是忘了调用你的函数;
$optsH = (function(){
if ( jQ('#options').length > 0 ) {
return jQ('#options').outerHeight();
} else {
return 0;
}
})()
如果你想优化它,这是一个更好的方法:
$optsH = jQ('#options').outerHeight() || 0;
如果选择器outerHeight
不匹配任何元素,则调用将返回 null,并且 null 是虚假的,因此您应该能够执行以下操作:
$optsH = jQ('#options').outerHeight() || 0;
(我现在无法测试,但我很确定它应该可以工作。)
你可以这样做
$(document).ready(function(){
$('#input_field').val($('#options').length > 0 ? $('#options').outerHeight() : 0);
});
如果元素不存在jQ('#options')
将返回一个空集合,为什么还要检查?