- Selecting Elements
- link Selecting Elements by ID
- link Selecting Elements by Class Name
- link Selecting Elements by Attribute
- link Selecting Elements by Compound CSS Selector
- link Selecting Elements with a Comma-separated List of Selectors
- link Pseudo-Selectors
- link Choosing Selectors
- link Does My Selection Contain Any Elements?
- link Saving Selections
- link Refining & Filtering Selections
- link Selecting Form Elements
- link :checked
- link :disabled
- link :enabled
- link :input
- link :selected
- link Selecting by type
- Last Updated
- Suggestions, Problems, Feedback?
- Chapters
- Books
- Learn and Understand jQuery this “$(this)” Selector with Examples and Codes
- jQuery this – Click Example
- jQuery this – .each() example
- jQuery this – .append() example
- jQuery this – .focus() example
- jQuery this – .hover() example
Selecting Elements
The most basic concept of jQuery is to «select some elements and do something with them.» jQuery supports most CSS3 selectors, as well as some non-standard selectors. For a complete selector reference, visit the Selectors documentation on api.jquery.com.
link Selecting Elements by ID
$( "#myId" ); // Note IDs must be unique per page.
link Selecting Elements by Class Name
link Selecting Elements by Attribute
link Selecting Elements by Compound CSS Selector
link Selecting Elements with a Comma-separated List of Selectors
link Pseudo-Selectors
$( "a.external:first" );
$( "tr:odd" );
// Select all input-like elements in a form (more on this below).
$( "#myForm :input" );
$( "div:visible" );
// All except the first three divs.
$( "div:gt(2)" );
// All currently animated divs.
$( "div:animated" );
Note: When using the :visible and :hidden pseudo-selectors, jQuery tests the actual visibility of the element, not its CSS visibility or display properties. jQuery looks to see if the element’s physical height and width on the page are both greater than zero.
Elements that have not been added to the DOM will always be considered hidden, even if the CSS that would affect them would render them visible. See the Manipulating Elements section to learn how to create and add elements to the DOM.
link Choosing Selectors
Choosing good selectors is one way to improve JavaScript’s performance. Too much specificity can be a bad thing. A selector such as #myTable thead tr th.special is overkill if a selector such as #myTable th.special will get the job done.
link Does My Selection Contain Any Elements?
Once you’ve made a selection, you’ll often want to know whether you have anything to work with. A common mistake is to use:
This won’t work. When a selection is made using $() , an object is always returned, and objects always evaluate to true . Even if the selection doesn’t contain any elements, the code inside the if statement will still run.
The best way to determine if there are any elements is to test the selection’s .length property, which tells you how many elements were selected. If the answer is 0, the .length property will evaluate to false when used as a boolean value:
// Testing whether a selection contains elements.
if ( $( "div.foo" ).length )
.
>
link Saving Selections
jQuery doesn't cache elements for you. If you've made a selection that you might need to make again, you should save the selection in a variable rather than making the selection repeatedly.
Once the selection is stored in a variable, you can call jQuery methods on the variable just like you would have called them on the original selection.
A selection only fetches the elements that are on the page at the time the selection is made. If elements are added to the page later, you'll have to repeat the selection or otherwise add them to the selection stored in the variable. Stored selections don't magically update when the DOM changes.
link Refining & Filtering Selections
Sometimes the selection contains more than what you're after. jQuery offers several methods for refining and filtering selections.
// Refining selections.
$( "div.foo" ).has( "p" ); // div.foo elements that contain
tags
$( "h1" ).not( ".bar" ); // h1 elements that don't have a class of bar
$( "ul li" ).filter( ".current" ); // unordered list items with class of current
$( "ul li" ).first(); // just the first unordered list item
$( "ul li" ).eq( 5 ); // the sixth
link Selecting Form Elements
jQuery offers several pseudo-selectors that help find elements in forms. These are especially helpful because it can be difficult to distinguish between form elements based on their state or type using standard CSS selectors.
link :checked
Not to be confused with :checkbox, :checked targets checked checkboxes, but keep in mind that this selector works also for checked radio buttons, and elements (for elements only, use the :selected selector):
The :checked pseudo-selector works when used with checkboxes, radio buttons and selects.
link :disabled
Using the :disabled pseudo-selector targets any elements with the disabled attribute:
In order to get the best performance using :disabled , first select elements with a standard jQuery selector, then use .filter( ":disabled" ) , or precede the pseudo-selector with a tag name or some other selector.
link :enabled
Basically the inverse of the :disabled pseudo-selector, the :enabled pseudo-selector targets any elements that do not have a disabled attribute:
In order to get the best performance using :enabled , first select elements with a standard jQuery selector, then use .filter( ":enabled" ) , or precede the pseudo-selector with a tag name or some other selector.
link :input
Using the :input selector selects all , , , and elements:
link :selected
Using the :selected pseudo-selector targets any selected items in elements:
In order to get the best performance using :selected , first select elements with a standard jQuery selector, then use .filter( ":selected" ) , or precede the pseudo-selector with a tag name or some other selector.
link Selecting by type
jQuery provides pseudo selectors to select form-specific elements according to their type:
For all of these there are side notes about performance, so be sure to check out the API docs for more in-depth information.
Last Updated
Suggestions, Problems, Feedback?
Chapters
Books
Copyright 2023 OpenJS Foundation and jQuery contributors. All rights reserved. See jQuery License for more information. The OpenJS Foundation has registered trademarks and uses trademarks. For a list of trademarks of the OpenJS Foundation, please see our Trademark Policy and Trademark List. Trademarks and logos not indicated on the list of OpenJS Foundation trademarks are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them. OpenJS Foundation Terms of Use, Privacy, and Cookie Policies also apply. Web hosting by Digital Ocean | CDN by StackPath
Learn and Understand jQuery this “$(this)” Selector with Examples and Codes
The jQuery this selector is widely used and many times people get confuse to understand it fully. Therefore I decided to write this tutorial which explains the usage of $(this) selector with some easiest examples.
So whatever be the event/method – like click, hover, each, blur . You can refer to the DOM element with $(this) .
jQuery this – Click Example
I have some li tags. I can change the color of the li which is clicked. Here I will use the jQuery this selector to get my clicked li tag.
jQuery this – .each() example
Now I will use the jQuery this selector with .each() method. I will use change the color of elements having class called myclass .
jQuery this – .append() example
I have a button and on it’s click event I will append a text to it. I will use $(this) to append the text.
$("button").click(function () < $(this).append("the button") >);
jQuery this – .focus() example
Here I have a textbox and on it’s focus event I will change its border using jQuery this selector.
The below code does this work:
$("input").focus(function () < $(this).css("border", "4px dashed yellow"); >); $(" input").blur(function () < $(this).css("border", "none"); >);
jQuery this – .hover() example
Now I will explain how to use $(this) with jQuery hover event.
I have a span element. When mouse hovers over it the text-decoration is underline and when mouse moves away from it then text-decoration is changed to none.
Hover the mouse over me $("span").hover(function () < $(this).css("text-decoration", "underline"); >, function () < $(this).css("text-decoration", "none"); >);