如何检查jQuery中的“未定义”值
可能重复:
在JavaScript中检测未定义的对象属性
javascript未定义比较
我们如何添加一个未定义variables的检查,如:
function A(val) { if (val == undefined) // do this else // do this }
JQuery库是专门为简化和统一某些JavaScriptfunction而开发的。
但是,如果您需要针对undefined
值检查variables,则无需发明任何特殊方法,因为JavaScript具有简单,快速和跨平台的typeof
运算符:
if (typeof value === "undefined") { // ... }
它返回一个string,指示variables的types或其他未评估的操作数。 与if (value === undefined) { ... }
相比,这种方法的主要优点是,如果variablesvalue
不存在, typeof
将永远不会引发exception。
在这种情况下,您可以使用=== undefined
比较: if(val === undefined)
这是有效的,因为val
总是存在的 (这是一个函数参数)。
如果你想testing一个不是参数的任意variables,也就是说可能根本没有定义,那么你就必须使用if(typeof val === 'undefined')
来避免在val
不存在的情况下的exception。
请注意,typeof总是返回一个string,如果该variables根本不存在,则不会生成错误。
function A(val){ if(typeof(val) === "undefined") //do this else //do this }
我知道我迟到回答函数,但jQuery有一个build立function来做到这一点
if(jQuery.type(val) === "undefined"){ //Some code goes here }
请参阅jquery.type的jquery API文档https://api.jquery.com/jQuery.type/ 。
您可以使用简写技术来检查它是否未定义或为空
function A(val) { if(val || "") //do this else //do this }
希望对你有帮助
当我testing“ typeof obj === undefined
”时,即使obj未定义, alert(typeof obj)
也会返回object
。 由于obj是Object
types,它返回的Object
,不是undefined
。
所以经过几个小时的testing,我select了下面的技术。
if(document.getElementById(obj) !== null){ //do... }else{ //do... }
我不知道为什么第一种技术不起作用,但我完成了我的工作。
如果你有元素的名字,而不是id,我们可以在下面的所有文本元素(例如)上实现未定义的检查,并填充默认值,如0.0:
var aFieldsCannotBeNull=['ast_chkacc_bwr','ast_savacc_bwr']; jQuery.each(aFieldsCannotBeNull,function(nShowIndex,sShowKey) { var $_oField = jQuery("input[name='"+sShowKey+"']"); if($_oField.val().trim().length === 0){ $_oField.val('0.0') } })
我不知道这是最好的解决scheme,但它工作正常:
if($someObject['length']!=0){ //do someting }
function isValue(value, def, is_return) { if ( $.type(value) == 'null' || $.type(value) == 'undefined' || $.trim(value) == '' || ($.type(value) == 'number' && !$.isNumeric(value)) || ($.type(value) == 'array' && value.length == 0) || ($.type(value) == 'object' && $.isEmptyObject(value)) ) { return ($.type(def) != 'undefined') ? def : false; } else { return ($.type(is_return) == 'boolean' && is_return === true ? value : true); } }
试试这个〜所有types的检查器