20 Top jQuery Tips & Tricks for jQuery Programmers

Following are few very useful jQuery Tips and Tricks for all jQuery developers. I am sharing these as I think they will be very useful to you. Disclaimer: I have not written all of the below code but have collected from various sources from Internet.

1. Optimize performance of complex selectors

Query a subset of the DOM when using complex selectors drastically improves performance:
var subset = $(""); $("input[value^='']", subset);
Code language: JavaScript (javascript)

2. Set Context and improve the performance

On the core jQuery function, specify the context parameter when. Specifying the context parameter allows jQuery to start from a deeper branch in the DOM, rather than from the DOM root. Given a large enough DOM, specifying the context parameter should translate to performance gains.
$("input:radio", document.forms[0]);
Code language: JavaScript (javascript)

3. Live Event Handlers

Set an event handler for any element that matches a selector, even if it gets added to the DOM after the initial page load:
$('button.someClass').live('click', someFunction);
Code language: JavaScript (javascript)
This allows you to load content via ajax, or add them via javascript and have the event handlers get set up properly for those elements automatically. Likewise, to stop the live event handling:
$('button.someClass').die('click', someFunction);
Code language: JavaScript (javascript)
These live event handlers have a few limitations compared to regular events, but they work great for the majority of cases. Live event will work starting from jQuery 1.3

4. Checking the Index

jQuery has .index but it is a pain to use as you need the list of elements and pass in the element you want the index of
var index = e.g $('#ul>li').index( liDomObject );
Code language: JavaScript (javascript)
The following is easier: if you want to know the index of an element within a set, e.g. list items within a unordered list:
$("ul > li").click(function () { var index = $(this).prevAll().length; });
Code language: JavaScript (javascript)

5. Use jQuery data method

jQuery’s data() method is useful and not well known. It allows you to bind data to DOM elements without modifying the DOM.

6. Fadeout Slideup effect to remove an element

Combine more than one effects in jQuery to animate and remove an element from DOM.
$("#myButton").click(function() { $("#myDiv").fadeTo("slow", 0.01, function(){ //fade $(this).slideUp("slow", function() { //slide up $(this).remove(); //then remove from the DOM }); }); });
Code language: JavaScript (javascript)

7. Checking if an element exists

Use following snippet to check whether an element exists or not.
if ($("#someDiv").length) { //hooray!!! it exists... }
Code language: JavaScript (javascript)

8. Add dynamically created elements into the DOM

Use following code snippet to create a DIV dynamically and add it into the DOM. Further Reading: Dynamically Add/Remove rows in HTML table using JavaScript
var newDiv = $('<div></div>'); newDiv.attr("id","myNewDiv").appendTo("body");
Code language: JavaScript (javascript)

9. Line breaks and chainability

Instead of doing:
$("a").hide().addClass().fadeIn().hide();
Code language: JavaScript (javascript)
You can increase readability like so:
$("a") .hide() .addClass() .fadeIn() .hide();
Code language: JavaScript (javascript)

10. Creating custom selectors

$.extend($.expr[':'], { over100pixels: function(a) { return $(a).height() > 100; } }); $('.box:over100pixels').click(function() { alert('The element you clicked is over 100 pixels high'); });
Code language: JavaScript (javascript)

11. Cloning an object in jQuery

Use .clone() method of jQuery to clone any DOM object in JavaScript.
// Clone the DIV var cloned = $('#somediv').clone();
Code language: JavaScript (javascript)
jQuery’s clone() method does not clone a JavaScript object. To clone JavaScript object, use following code.
// Shallow copy var newObject = jQuery.extend({}, oldObject); // Deep copy var newObject = jQuery.extend(true, {}, oldObject);
Code language: JavaScript (javascript)

12. Test if something is hidden using jQuery

We use .hide(), .show() methods in jquery to change the visibility of an element. Use following code to check the whether an element is visible or not.
if($(element).is(":visible") == "true") { //The element is Visible }
Code language: JavaScript (javascript)

13. Alternate way of Document Ready

//Instead of $(document).ready(function() { //document ready }); //Use $(function(){ //document ready });
Code language: JavaScript (javascript)

14. Selecting an element with . (period) in its ID

Use backslash in the selector to select the element having period in its ID.
$("#Address\\.Street").text("Enter this field");
Code language: JavaScript (javascript)

15. Counting immediate child elements

If you want to count all the DIVs present in the element #foo
<div id="foo"> <div id="bar"></div> <div id="baz"> <div id="biz"> </div> <span><span> </div> //jQuery code to count child elements $("#foo > div").size()
Code language: JavaScript (javascript)

16. Make an element to “FLASH”

jQuery.fn.flash = function( color, duration ) { var current = this.css( 'color' ); this.animate( { color: 'rgb(' + color + ')' }, duration / 2 ); this.animate( { color: current }, duration / 2 ); } //Then use the above function as: $( '#importantElement' ).flash( '255,0,0', 1000 );
Code language: JavaScript (javascript)

17. Center an element on the Screen

jQuery.fn.center = function () { this.css("position","absolute"); this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px"); this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px"); return this; } //Use the above function as: $(element).center();
Code language: JavaScript (javascript)

18. Getting Parent DIV using closest

If you want to find the wrapping DIV element (regardless of the ID on that DIV) then you’ll want this jQuery selector:
$("#searchBox").closest("div");
Code language: JavaScript (javascript)

19. Disable right-click contextual menu

There’s many Javascript snippets available to disable right-click contextual menu, but JQuery makes things a lot easier:
$(document).ready(function(){ $(document).bind("contextmenu",function(e){ return false; }); });
Code language: JavaScript (javascript)

20. Get mouse cursor x and y axis

This script will display the x and y value – the coordinate of the mouse pointer.
$().mousemove(function(e){ //display the x and y axis values inside the P element $('p').html("X Axis : " + e.pageX + " | Y Axis " + e.pageY); }); <p></p>
Code language: JavaScript (javascript)

View Comments

  • Great list :D

    Couple of things though:

    number 7 - while that does work, you don't need to check whether elements exist before selecting them. jQuery will not throw errors if you try to select elements not on the page (unlike most other libraries). Unnecessary checking of whether elements exist will slow things down a little.

    number 9 - this is in no way related to performance, in fact, it may even make scripts slower! Compression applications, such as YUI compressor, remove line-breaks from JS documents when you compress them. Line breaks do need to be processed and exist as characters, so unecessary line breaks are going to slow things down (even only by a few milliseconds)

    But some great tips apart from those :)

  • @Andrew, Thanks for the comment and thanks for sharing the useful link.

    @Dan, Great insight and thanks for the comment :) Glad you liked the snippets. Feel free to go through rest of the articles of this site.

  • Great list, thanks. I'm may quesion #17, how to replicate being in top 20 but I'd just be quibbling :)

  • @Dan: Regarding #9, you must admit that the virtually unnoticeable drop in speed is well worth the upgrade to readability

  • I've been using jQuery for about as long as it has existed (about 3-4 years) and I never knew there was "contextmenu" event. Never had to use it... but, it's nice to know it exists.

  • Nice collection of jQuery Tips and Tricks mate. I have also linked to yours from my blog post below where I am trying to collect the most useful and common jQuery code snippets for JavaScript over the web. Here is the title and the link to the jQuery link compilation endeavor:

    Ultimate collection of top jQuery tutorials, tips-tricks and techniques to improve performance

    http://technosiastic.wordpress.com/2009/09/24/collection-of-top-jquery-tutorials-tips-tricks-techniques-to-improve-performance/

Share
Published by
Viral Patel
Tags: JQuery jQuery Effects jquery tips tricks tips & tricks

Recent Posts

  • Java

Java URL Encoder/Decoder Example

Java URL Encoder/Decoder Example - In this tutorial we will see how to URL encode/decode…

5 years ago
  • General

How to Show Multiple Examples in OpenAPI Spec

Show Multiple Examples in OpenAPI - OpenAPI (aka Swagger) Specifications has become a defecto standard…

5 years ago
  • General

How to Run Local WordPress using Docker

Local WordPress using Docker - Running a local WordPress development environment is crucial for testing…

5 years ago
  • Java

Create and Validate JWT Token in Java using JJWT

1. JWT Token Overview JSON Web Token (JWT) is an open standard defines a compact…

5 years ago
  • Spring Boot

Spring Boot GraphQL Subscription Realtime API

GraphQL Subscription provides a great way of building real-time API. In this tutorial we will…

5 years ago
  • Spring Boot

Spring Boot DynamoDB Integration Test using Testcontainers

1. Overview Spring Boot Webflux DynamoDB Integration tests - In this tutorial we will see…

5 years ago