Whether a variable is undefined
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Best way to check for"undefined" in JavaScript?
如何确定变量是否未定义?
我目前有:
1 2 3 4 5 6 7 8 | 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()将返回空值。您需要执行以下操作:
1 | if(page_name != '') |
对于其他不来自jquery.val()之类的变量,您可以这样做:
1 | if(typeof page_name != 'undefined') |
你只需要使用
或者更准确地说
注:使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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 */ |
这样可以避免使用
http://constc.blogspot.com/2008/07/undeclared-undefined-null-in-javascript.html
取决于您希望测试的具体程度。你也许可以离开
1 | if(page_name){ string +="&page_name=" + page_name; } |
您可以直接检查变量。如果没有定义,它将返回一个错误的值。
1 2 3 4 | var string ="?z=z"; if (page_name) { string +="&page_name=" + page_name; } if (table_name) { string +="&table_name=" + table_name; } if (optionResult) { string +="&optionResult=" + optionResult; } |