with - title jquery html




Se uma variável é indefinida (4)

Duplicata Possível:
Melhor maneira de verificar por "indefinido" em JavaScript?

Como faço para encontrar se uma variável é indefinida?

Atualmente tenho:

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; }

https://code.i-harness.com


Você pode apenas verificar a variável diretamente. Se não definido, retornará um valor falsy .

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; }

jQuery.val () e .text () nunca retornarão 'indefinido' para uma seleção vazia. Ele sempre retorna uma string vazia (isto é, ""). .html () retornará null se o elemento não existir. Você precisa fazer:

if(page_name != '')

Para outras variáveis ​​que não vêm de algo como jQuery.val () você faria isso:

if(typeof page_name != 'undefined')

Você apenas tem que usar o operador typeof .


if (var === undefined)

ou mais precisamente

if (typeof var === 'undefined')

Observe o === é usado


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
*/

Isso evita usar typeof whatever === "undefined" . (Além disso, não há concatenação de string.)





jquery