Ver índice de contenidos del libro

9.10. No actuar en elementos no existentes

jQuery no le dirá si esta tratando de ejecutar código en una selección vacía — esta se ejecutará como si nada estuviera mal. Dependerá de usted comprobar si la selección contiene elementos.

// MAL: el codigo a continuación ejecuta tres funciones
// sin comprobar si existen elementos
// en la selección
$('#nosuchthing').slideUp();
 
// Mejor
var $mySelection = $('#nosuchthing');
if ($mySelection.length) { $mySelection.slideUp(); }
 
// MUCHO MEJOR: añadir una extensión doOnce
jQuery.fn.doOnce = function(func){
    this.length && func.apply(this);
    return this;
}
 
$('li.cartitems').doOnce(function(){
    // realizar algo
});

Este consejo es especialmente aplicable para widgets de jQuery UI, los cuales poseen mucha carga incluso cuando la selección no contiene elementos.