.has( selector )Returns: jQuery
Description: Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element.
-
version added: 1.4.has( selector )
- selectorType: StringA string containing a selector expression to match elements against.
-
-
version added: 1.4.has( contained )
- containedType: ElementA DOM element to match elements against.
-
Given a jQuery object that represents a set of DOM elements, the .has()
method constructs a new jQuery object from a subset of the matching elements. The supplied selector is tested against the descendants of the matching elements; the element will be included in the result if any of its descendant elements matches the selector.
Consider a page with a nested list as follows:
<ul> <li>list item 1</li> <li>list item 2 <ul> <li>list item 2-a</li> <li>list item 2-b</li> </ul> </li> <li>list item 3</li> <li>list item 4</li> </ul>
We can apply this method to the set of list items as follows:
$( "li" ).has( "ul" ).css( "background-color", "red" );
The result of this call is a red background for item 2, as it is the only <li>
that has a <ul>
among its descendants.
Example:
Check if an element is inside another.
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>has demo</title> <style> .full { border: 1px solid red; } </style> <script src="https://code.jquery.com/jquery-3.5.0.js"></script> </head> <body> <ul><li>Does the UL contain an LI?</li></ul> <script> $( "ul" ).append( "<li>" + ( $( "ul" ).has( "li" ).length ? "Yes" : "No" ) + "</li>" ); $( "ul" ).has( "li" ).addClass( "full" ); </script> </body> </html>