Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element.
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:
1 2 3 4 5 6 7 8 9 10 11 | < 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:
1 | $( "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.
version added: 1.4
selector
A string containing a selector expression to match elements against.
version added: 1.4
contained
A DOM element to match elements against.
Examples:
Check if an element is inside another.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <!doctype html> < html lang = "en" > < head > < meta charset = "utf-8" > < title >has demo</ title > < style > .full { border: 1px solid red; } </ style > </ 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 > |
Links:
Please login to continue.