返回值:jQueryhas(selector)

保留包含特定后代的元素,去掉那些不含有指定后代的元素。

如果提供一个 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');

结果是 item 2 背景变成了红色,因为只有这个 <li> 含有 <ul> 后代。

示例:

检测一个元素是否在另一个元素之内。

<!DOCTYPE html>
<html>
<head>
<style>
  .full { border: 1px solid red; }
</style>
<script src="jquery.min.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>

演示: