.has()
返回: jQuery
.has( selector )
描述:把匹配的元素集合缩小到这样的元素:它拥有匹配该选择器或者DOM元素的后代元素。
加入于: 1.4
.has( selector )- selector类型:String一个字符串,它包含了一个选择器表达式,用来匹配所针对的元素。
加入于: 1.4
.has( contained )- contained类型:Element一个用来匹配所针对的元素的DOM元素。
给定一个jQuery对象,代表了一个DOM元素的集合,.has()
方法从匹配元素的子集构造了一个新的jQuery对象。提供的选择器用来针对匹配的元素的后代元素作测试;如果元素的后代元素匹配该选择器,该元素将包含在结果中。
设想网页上有一个嵌套的列表,如下所示。
<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>
我们可以把该方法应用到列表项目集合上,如下所示:
$( "li" ).has( "ul" ).css( "background-color", "red" );
这个调用的结果是项目2出现红色的背景,因为它是唯一的其后代元素中有一个<ul>
的<li>
元素。
示例
检查一个元素是否在另一个里面:
<!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-1.10.2.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>
演示结果