Posibles duplicados:
¿Hay una función "existe" para jQuery?
jQuery determinando si el elemento existe en la página
if(tr) devuelve verdadero cuando tr no es un elemento, ¿cómo verifico si es un elemento que existe?
var tr = $('#parts-table .no-data').parent(); $('.delete', row).bind('click', function (e) { that.delete(e.currentTarget); }); console.log(tr); if (tr) //returns true when it shouldn'tCompruebe su propiedad length :
if(tr.length) { // exists } if(tr) siempre se evalúa como verdadero porque un objeto jQuery, o cualquier objeto JavaScript para el caso, siempre es verdadero.
Siempre agrego este pequeño fragmento de jQuery al comienzo de mis archivos JS
jQuery.fn.exists = function(){return jQuery(this).length>0;}Esto utiliza el mismo enfoque que muchos han sugerido aquí, pero también le permite acceder si existe o no un objeto como este:
if ( $('#toolbar').exists() ){ $('#toolbar').load(..., function(){...}); //etc... }Eso es porque tr es un objeto jQuery, lo cual es cierto (incluso cuando el objeto jQuery está vacío). Use if (tr.length) en su lugar, que será verdadero cuando la length no sea cero, falso cuando sea cero. O alternativamente, if (tr[0]) .