我有这样的功能:
function parseValue(value, defaultValue) {
if ($.isFunction(value))
return value();
if (!value)
return defaultValue;
if ($(value).size() > 0)
return $(value).val();
return value;
};
value
可以是函数,“值”或jquery选择器。我的问题是如何确定选择器是有效的(找到一个控件)。
例如,当value
等于56.87 $(value).size() > 0
时评估为true。我希望它是假的。即使传递了类似#invalidcontrolid
的内容,如果它实际上不存在于页面上,我也希望得到错误,这样我就可以返回值。有什么想法吗?
答案 0 :(得分:2)
.size()
只是.length
属性的包装方法。所以这应该(并且确实)有效:
http://www.jsfiddle.net/EawgE/
如果parseValue
实际上是一个数字,您应该在value
方法中查看。如果是这样,只需返回false
或其他但不将其传递给jQuery构造函数。
if( typeof value === 'number' ) {}
或
if( $.type(value) === 'number' ) {}
示例:
function parseValue(value, defaultValue) {
if ($.isFunction(value))
return value();
if ( $.type(value) === 'number' )
return value; // ?
if ( $.type(value) === 'string' && $(value).length )
return $(value).val();
return defaultValue;
};