.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>
演示结果