1-1 什么是遍历?
本节编程练习不计算学习进度,请电脑登录imooc.com操作

什么是遍历?

在数据结构中有遍历这个概念,简单点就是将数据的所有节点都查询一遍,但不同的数据结构有不同的遍历方法,而且同一种数据结构也有不同的遍历方法。

jQuery 遍历函数包括了用于筛选、查找和串联元素的方法。

来自w3school是这么解释的:

jQuery 遍历,意为“移动”,用于根据其相对于其他元素的关系来“查找”(或选取)HTML 元素。以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。

下图展示了一个家族树。通过 jQuery 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行遍历。

图示解释:

 

  ☑ <div> 元素是 <ul> 的父元素,同时是其中所有内容的祖先。

  ☑ <ul> 元素是 <li> 元素的父元素,同时是 <div> 的子元素

  ☑ 左边的 <li> 元素是 <span> 的父元素,<ul> 的子元素,同时是 <div> 的后代。

  ☑ <span> 元素是 <li> 的子元素,同时是 <ul> 和 <div> 的后代。

  ☑ 两个 <li> 元素是同胞(拥有相同的父元素)。

  ☑ 右边的 <li> 元素是 <b> 的父元素,<ul> 的子元素,同时是 <div> 的后代。

  ☑ <b> 元素是右边的 <li> 的子元素,同时是 <ul> 和 <div> 的后代。

提示:祖先是父、祖父、曾祖父等等。后代是子、孙、曾孙等等。同胞拥有相同的父。

jQuery的遍历处理不仅只是针对基本的层级关系,还扩展了大量的筛选接口,包括了用于筛选、查找和串联元素的方法。之后我们会介绍到各自的实现。

 

任务

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <script src="http://img1.sycdn.imooc.com//down/540812440001e40e00000000.js" type="text/javascript"></script>
  6. <!-- <script type="text/javascript" src="../jquery-2.1.1.js"></script> -->
  7. <title></title>
  8. </head>
  9. <body>
  10.  
  11. 文档遍历处理
  12. <button id="test1">文档筛选eq</button>
  13. <button id="test2">文档筛选filter</button>
  14. <button id="test3">文档筛选not</button>
  15. <button id="test4">树遍历children</button>
  16. <button id="test5">树遍历closest</button>
  17. <button id="test6">树遍历find</button>
  18.  
  19. <ul class="level-1">
  20. <li class="item-i">I</li>
  21. <li class="item-ii">II
  22. <ul class="level-2">
  23. <li class="item-a">A</li>
  24. <li class="item-b">B
  25. <ul class="level-3">
  26. <li class="item-1">1</li>
  27. <li class="item-2">2</li>
  28. <li class="item-3">3</li>
  29. </ul>
  30. </li>
  31. <li class="item-c">C</li>
  32. </ul>
  33. </li>
  34. <li class="item-iii">III</li>
  35. </ul>
  36.  
  37.  
  38. <script type="text/javascript">
  39.  
  40. $("#test1").click(function(event) {
  41. $('li').eq(2).css('background-color', 'red');
  42. })
  43. $("#test2").click(function(event) {
  44. $('li').filter(':even').css('background-color', 'blue');
  45. })
  46. $("#test3").click(function(event) {
  47. $('li').not(':even').css('background-color', 'red');
  48. })
  49. $("#test4").click(function(event) {
  50. $('ul.level-2').children().css('background-color', 'yellow');
  51. })
  52. $("#test5").click(function(event) {
  53. $('li.item-a').closest('ul')
  54. .css('background-color', 'red');
  55. })
  56. $("#test6").click(function(event) {
  57. $('li.item-ii').find('li').css('background-color', 'blue');
  58. })
  59.  
  60.  
  61. </script>
  62.  
  63. </body>
  64. </html>
下一节