當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JQuery .each()用法及代碼示例


用法
.each( function ) => jQuery

說明:遍曆一個 jQuery 對象,為每個匹配的元素執行一個函數。

  • 添加的版本:1.0.each( function )

.each() 方法旨在使 DOM 循環結構簡潔且更少 error-prone。當被調用時,它會遍曆作為 jQuery 對象一部分的 DOM 元素。每次回調運行時,都會傳遞當前循環迭代,從 0 開始。更重要的是,回調是在當前 DOM 元素的上下文中觸發的,因此關鍵字 this 指的是該元素。

假設頁麵上有一個簡單的無序列表:

<ul>
  <li>foo</li>
  <li>bar</li>
</ul>

您可以選擇列表項並遍曆它們:

$( "li" ).each(function( index ) {
  console.log( index + ": " + $( this ).text() );
});

因此,列表中的每個項目都會記錄一條消息:

0:富
1:酒吧

您可以通過返回 false 從回調函數中停止循環。

注意:大多數返回 jQuery 對象的 jQuery 方法也會循環遍曆 jQuery 集合中的元素集——這個過程稱為隱式迭代.發生這種情況時,通常不需要明確的迭代.each()方法:

// The .each() method is unnecessary here:
$( "li" ).each(function() {
  $( this ).addClass( "foo" );
});
 
// Instead, you should rely on implicit iteration:
$( "li" ).addClass( "bar" );

例子:

遍曆三個 div 並設置它們的顏色屬性。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>each demo</title>
  <style>
  div {
    color: red;
    text-align: center;
    cursor: pointer;
    font-weight: bolder;
    width: 300px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<div>Click here</div>
<div>to iterate through</div>
<div>these divs.</div>
 
<script>
$( document.body ).click(function() {
  $( "div" ).each(function( i ) {
    if ( this.style.color !== "blue" ) {
      this.style.color = "blue";
    } else {
      this.style.color = "";
    }
  });
});
</script>
 
</body>
</html>

演示:

要訪問 jQuery 對象而不是常規 DOM 元素,請使用 $( this ) 。例如:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>each demo</title>
  <style>
  ul {
    font-size: 18px;
    margin: 0;
  }
  span {
    color: blue;
    text-decoration: underline;
    cursor: pointer;
  }
  .example {
    font-style: italic;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
To do list: <span>(click here to change)</span>
<ul>
  <li>Eat</li>
  <li>Sleep</li>
  <li>Be merry</li>
</ul>
 
<script>
$( "span" ).click(function() {
  $( "li" ).each(function() {
    $( this ).toggleClass( "example" );
  });
});
</script>
 
</body>
</html>

演示:

使用return false 盡早跳出each() 循環。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>each demo</title>
  <style>
  div {
    width: 40px;
    height: 40px;
    margin: 5px;
    float: left;
    border: 2px blue solid;
    text-align: center;
  }
  span {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<button>Change colors</button>
<span></span>
<div></div>
<div></div>
<div></div>
<div></div>
<div id="stop">Stop here</div>
<div></div>
<div></div>
<div></div>
 
<script>
$( "button" ).click(function() {
  $( "div" ).each(function( index, element ) {
    // element == this
    $( element ).css( "backgroundColor", "yellow" );
    if ( $( this ).is( "#stop" ) ) {
      $( "span" ).text( "Stopped at div index #" + index );
      return false;
    }
  });
});
</script>
 
</body>
</html>

演示:

相關用法


注:本文由純淨天空篩選整理自jquery.com大神的英文原創作品 .each()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。