Don't Act on Absent Elements

jQuery

Don’t Act on Absent Elements

jQuery won't tell you if you're trying to run a whole lot of code on an empty selection — it will proceed as though nothing's wrong. It's up to you to verify that your selection contains some elements.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
                          
// BAD: this runs three functions
// before it realizes there's nothing
// in the selection
$("#nosuchthing").slideUp();
// Better
var $mySelection = $("#nosuchthing");
if ( $mySelection.length ) {
$mySelection.slideUp();
}
// BEST: add a doOnce plugin
jQuery.fn.doOnce = function( func ){
this.length && func.apply( this );
return this;
}
$("li.cartitems").doOnce(function() {

// make it ajax! \o/
});

This guidance is especially applicable for jQuery UI widgets, which have a lot of overhead even when the selection doesn't contain elements.