Front-end Tutorials

Front-end Tutorials

HTMLCSSSassJavaScriptReactJS
CMS Tutorials

CMS Tutorials

WordPress
Tutorials expand

jQuery Basic

jQuery Ajax Events

jQuery Ajax Methods

jQuery Keyboard Events

jQuery Keyboard Methods

jQuery Form Events

jQuery Form Methods

jQuery Mouse Event

jQuery Mouse Methods

jQuery Event Object

jQuery Fading

jQuery Document Loading

jQuery Traversing

jQuery Utilities

jQuery Property

jQuery HTML

jQuery CSS

jQuery Miscellaneous

jQuery .has() Method

Posted in jQuery Tutorial
Updated on Oct 13, 2024
By Mari Selvan
👁️ 34 - Views
⏳ 4 mins
💬 1 Comment
jQuery .has() Method

Photo Credit to CodeToFun

🙋 Introduction

jQuery offers a plethora of methods to manipulate the DOM and traverse through elements efficiently. Among these, the .has() method stands out as a powerful tool for filtering elements based on their descendants. Understanding and leveraging the .has() method can significantly enhance your ability to work with complex HTML structures.

In this comprehensive guide, we'll explore the usage of the jQuery .has() method with practical examples to illuminate its potential.

🧠 Understanding .has() Method

The .has() method allows you to filter elements based on whether they contain specific descendants. This method comes in handy when you want to select elements that have certain child elements or meet specific criteria.

💡 Syntax

The syntax for the .has() method is straightforward:

syntax.js
Copied
Copy To Clipboard
$(selector).has(filter)

📝 Example

  1. Selecting Elements with Specific Descendants:

    Suppose you have a list of <div> elements and you want to select only those that contain <p> elements. You can achieve this using the .has() method as follows:

    index.html
    Copied
    Copy To Clipboard
    <div>
      <p>This div contains a paragraph.</p>
    </div>
    <div>
      <span>This div does not contain a paragraph.</span>
    </div>
    example.js
    Copied
    Copy To Clipboard
    $("div").has("p").css("border", "2px solid green");

    This will apply a green border to the <div> elements that contain <p> elements.

  2. Filtering Elements Based on Descendants' Attributes:

    You can also use the .has() method to filter elements based on the attributes of their descendants. For instance, let's select <li> elements that contain <a> elements with a specific class:

    index.html
    Copied
    Copy To Clipboard
    <ul>
      <li><a href="#" class="active">Link 1</a></li>
      <li><a href="#">Link 2</a></li>
    </ul>
    example.js
    Copied
    Copy To Clipboard
    $("li").has("a.active").css("font-weight", "bold");

    This will make the text of the <a> elements with the class active bold.

  3. Chaining with Other jQuery Methods:

    The .has() method can be combined with other jQuery methods for more complex selections. For example, let's find <div> elements that contain both <p> and <span> elements:

    index.html
    Copied
    Copy To Clipboard
    <div>
      <p>This div contains a paragraph.</p>
      <span>And a span.</span>
    </div>
    <div>
      <p>This div contains only a paragraph.</p>
    </div>
    example.js
    Copied
    Copy To Clipboard
    $("div").has("p").has("span").css("background-color", "lightblue");

    This will set the background color of the <div> that contains both <p> and <span> elements to light blue.

🎉 Conclusion

The jQuery .has() method is a versatile tool for filtering elements based on their descendants, offering immense flexibility in DOM manipulation. Whether you need to select elements with specific child elements, filter based on descendants' attributes, or chain with other jQuery methods, the .has() method provides a straightforward solution.

By mastering its usage, you can streamline your DOM traversal and manipulation tasks, making your web development endeavors more efficient and effective.

👨‍💻 Join our Community:

To get interesting news and instant updates on Front-End, Back-End, CMS and other Frameworks. Please Join the Telegram Channel:

Author

author
👋 Hey, I'm Mari Selvan

For over eight years, I worked as a full-stack web developer. Now, I have chosen my profession as a full-time blogger at codetofun.com.

Buy me a coffee to make codetofun.com free for everyone.

Buy me a Coffee

Share Your Findings to All

Subscribe
Notify of
guest
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
We make use of cookies to improve our user experience. By using this website, you agree with our Cookies Policy
AgreeCookie Policy