Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

46 lines (31 sloc) 0.94 kb
title level source attribution
Don't Act on Absent Elements
intermediate
jQuery Fundamentals

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.

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

Jump to Line
Something went wrong with that request. Please try again.