4-5 检测两个节点的包含关系
本节编程练习不计算学习进度,请电脑登录imooc.com操作

检测两个节点的包含关系

调用名为$.contains的工具函数,能检测在一个DOM节点中是否包含另外一个DOM节点,如果包含,返回true,否则,返回false值,调用格式为:

$.contains (container, contained);

参数container表示一个DOM对象节点元素,用于包含其他节点的容器,contained是另一个DOM对象节点元素,用于被其他容器所包含。

例如,通过$.contains()函数,检测两个节点对象间是否存在包含关系,并将检测的结果显示在页面中,如下图所示:

在浏览器中显示的效果:

从图中可以看出,documentElement是DOM根结点,而body只是根结点下的子节点之一,它们之间存在包含关系,因此,返回true值,并显示“包含”字样。

任务

我来试试,亲自调用$.contains检测两个节点间是否存在包含关系

在下列代码的第22行,调用$.contains工具函数检测两个节点间是否存在包含关系,并将结果显示在页面中。

 

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>检测两个节点的包含关系</title>
  5. <link href="style.css" rel="stylesheet" type="text/css" />
  6. <script src="http://www.imooc.com/data/jquery-1.8.2.min.js" type="text/javascript"></script>
  7. </head>
  8.  
  9. <body>
  10. <div id="divtest">
  11. <div class="title">
  12. <span class="fl">检测两个节点的包含关系</span>
  13. </div>
  14. <div class="content"></div>
  15. </div>
  16.  
  17. <script type="text/javascript">
  18. $(function () {
  19. var node_a = document.body.firstChild;
  20. var node_b = document.body;
  21. var strTmp = "对象node_a";
  22. if (?) { //检测是否包含节点
  23. strTmp += " 包含 ";
  24. }
  25. else {
  26. strTmp += " 不包含 ";
  27. }
  28. strTmp += "对象node_b";
  29. $(".content").html(strTmp);
  30. });
  31. </script>
  32. </body>
  33. </html>
  1. #divtest
  2. {
  3. width: 282px;
  4. }
  5. #divtest .title
  6. {
  7. padding: 8px;
  8. background-color: Blue;
  9. color: #fff;
  10. height: 23px;
  11. line-height: 23px;
  12. font-size: 15px;
  13. font-weight: bold;
  14. }
  15. #divtest .content
  16. {
  17. padding: 8px;
  18. background-color: #fff;
  19. font-size: 13px;
  20. }
  21. .fl
  22. {
  23. float: left;
  24. }
  25. .fr
  26. {
  27. float: right;
  28. }
下一节