一个变量是否是未定义的
可能重复:
检查JavaScript中的“undefined”的最佳方法是什么?
如何查找变量是否未定义?
我目前有:
var page_name = $("#pageToEdit :selected").text();
var table_name = $("#pageToEdit :selected").val();
var optionResult = $("#pageToEditOptions :selected").val();
var string = "?z=z";
if ( page_name != 'undefined' ) { string += "&page_name=" + page_name; }
if ( table_name != 'undefined' ) { string += "&table_name=" + table_name; }
if ( optionResult != 'undefined' ) { string += "&optionResult=" + optionResult; }
对于空选择,jQuery.val()和.text()永远不会返回'undefined'。 它总是返回一个空字符串(即“”)。 如果元素不存在,.html()将返回null。您需要这样做:
if(page_name != '')
对于不是来自jQuery.val()之类的其他变量,您可以这样做:
if(typeof page_name != 'undefined')
你只需要使用typeof
操作符。
if (var === undefined)
或更准确地说
if (typeof var === 'undefined')
请注意使用===
function my_url (base, opt)
{
var retval = ["" + base];
retval.push( opt.page_name ? "&page_name=" + opt.page_name : "");
retval.push( opt.table_name ? "&table_name=" + opt.table_name : "");
retval.push( opt.optionResult ? "&optionResult=" + opt.optionResult : "");
return retval.join("");
}
my_url("?z=z", { page_name : "pageX" /* no table_name and optionResult */ } );
/* Returns:
?z=z&page_name=pageX
*/
这避免了使用typeof whatever === "undefined"
。 (另外,没有任何字符串连接。)