6-10 jQuery遍历之each()
本节编程练习不计算学习进度,请电脑登录imooc.com操作

jQuery遍历之each()

jQuery是一个合集对象,通过$()方法找到指定的元素合集后可以进行一系列的操作。比如我们操作$("li").css('') 给所有的li设置style值,因为jQuery是一个合集对象,所以css方法内部就必须封装一个遍历的方法,被称为隐式迭代的过程。要一个一个给合集中每一个li设置颜色,这里方法就是each

.each() 方法就是一个for循环的迭代器,它会迭代jQuery对象合集中的每一个DOM元素。每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数

所以大体上了解3个重点:

each是一个for循环的包装迭代器
each通过回调的方式处理,并且会有2个固定的实参,索引与元素
each回调方法中的this指向当前迭代的dom元素

看一个简单的案例

<ul>
    <li>慕课网</li>
    <li>Aaron</li>
</ul>

开始迭代li,循环2次

$("li").each(function(index, element) {
     index 索引 0,1
     element是对应的li节点 li,li
     this 指向的是li
})

这样可以在循环体会做一些逻辑操作了,如果需要提前退出,可以以通过返回 false以便在回调函数内中止循

具体的操作,请参考右边的代码

任务

  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  6. <title></title>
  7. <style>
  8. .left {
  9. width: auto;
  10. height: 150px;
  11. }
  12.  
  13. .left div {
  14. width: 150px;
  15. height: 120px;
  16. padding: 5px;
  17. margin: 5px;
  18. float: left;
  19. background: #bbffaa;
  20. border: 1px solid #ccc;
  21. }
  22. </style>
  23. <script src="https://www.imooc.com/static/lib/jquery/1.9.1/jquery.js"></script>
  24. </head>
  25.  
  26. <body>
  27. <h2>each方法</h2>
  28. <div class="left first-div">
  29. <div class="div">
  30. <ul>
  31. <li>list item 1</li>
  32. <li>list item 2</li>
  33. <li>list item 3</li>
  34. </ul>
  35. </div>
  36. <div class="div">
  37. <ul>
  38. <li>list item 4</li>
  39. <li>list item 5</li>
  40. <li>list item 6</li>
  41. </ul>
  42. </div>
  43. </div>
  44.  
  45. <br/>
  46. <button>点击:each方法遍历元素</button>
  47. <button>点击:each方法回调判断</button>
  48. <script type="text/javascript">
  49. $("button:first").click(function() {
  50. //遍历所有的li
  51. //修改每个li内的字体颜色
  52. $("li").each(function(index, element) {
  53. $(this).css('color','red')
  54. })
  55.  
  56. })
  57. </script>
  58. <script type="text/javascript">
  59. $("button:last").click(function() {
  60. //遍历所有的li
  61. //修改偶数li内的字体颜色
  62. $("li").each(function(index, element) {
  63. if (index % 2) {
  64. $(this).css('color','blue')
  65. }
  66. })
  67. })
  68. </script>
  69. </body>
  70.  
  71. </html>
  72.  
返回课程