了解 jQuery 中 $().each(function(){}) 與 $.each() 的差異

更新日期: 2024 年 11 月 6 日

在 jQuery 中,迴圈是非常常見的操作,特別是在處理陣列或物件資料時。

我們可以使用 $().each(function(){})$.each() 這兩種方式來遍歷元素或資料結構,但它們有一些不同的適用情境和功能。

本文將詳細介紹這兩者的差異,以及應用情境和用法。

$().each(function(){}) 方法

$().each() 是 jQuery 用於遍歷選取的 DOM 元素集合的方法。

它會遍歷 jQuery 所選取的元素集,並針對每個元素執行一次指定的函數。

用法

$('.items').each(function(index, element) {
    console.log('' + index + '個元素:', element);
});

參數說明

  • index:當前元素在選取集合中的索引。
  • element:當前 DOM 元素的原生物件,可以用 $(element) 將其轉換為 jQuery 物件來使用 jQuery 方法。

適用情境

$().each() 通常用於需要遍歷網頁上的一組特定元素的情境。

例如,想要為網頁中所有 .items 類別的元素設置樣式、文字內容或監聽事件時,可以使用 $().each() 來進行批量操作。

範例

以下範例會對頁面上的每個 .items 元素加上藍色邊框:

$('.items').each(function(index, element) {
    $(element).css('border', '1px solid blue');
});

在這裡,$('.items') 是選取所有 .items 類別的元素,並在 .each() 的回呼函數中為每個元素設置 CSS 樣式。

$.each() 方法

$.each() 是 jQuery 提供的通用迴圈方法,用來遍歷 陣列或物件 的項目。

$().each() 不同的是,$.each() 可以用於任何陣列或物件,而不僅限於 DOM 元素。

用法

$.each(arrayOrObject, function(indexOrKey, value) {
    console.log('索引或鍵:' + indexOrKey, '值:' + value);
});

參數說明

  • arrayOrObject:要遍歷的陣列或物件。
  • indexOrKey:當前元素的索引(若為陣列)或鍵(若為物件)。
  • value:當前索引或鍵對應的值。

適用情境

$.each() 用於需要遍歷非 DOM 資料的情境,如陣列或 JSON 資料物件。

它更適合處理複雜資料結構,特別是需要逐一處理每個項目的資料操作。

範例

以下範例遍歷一個包含物件的陣列,並將每個物件的內容顯示在控制台:

var dataArray = [
    { name: 'Item 1', price: 100 },
    { name: 'Item 2', price: 200 }
];

$.each(dataArray, function(index, item) {
    console.log('' + index + ' 項目:名稱 = ' + item.name + ', 價格 = ' + item.price);
});

在這裡,我們用 $.each() 來遍歷 dataArray 陣列的每個項目,並訪問每個物件中的屬性。

$().each()$.each() 的主要差異

特性$().each(function(){})$.each(parentData, function(){})
主要用途遍歷 jQuery 選取的 DOM 元素遍歷任意的陣列或物件
適用範圍jQuery 元素集合陣列或 JSON 物件
參數index(索引)、element(原生 DOM)indexOrKey(索引或鍵)、value(值)
典型使用情境操作多個選取的網頁元素,如批量設置樣式等遍歷非 DOM 資料(如陣列、物件資料)

範例對比

  1. $().each(function(){}) 範例:對所有 .item 元素應用紅色背景色。
$(".item").each(function (index, element) {
  $(element).css("background-color", "red");
});
  1. $.each() 範例:遍歷陣列資料並在控制台輸出每個項目。
const colors = ["red", "green", "blue"];
$.each(colors, function (index, color) {
  console.log("顏色索引:" + index + ", 顏色:" + color);
});

應用注意

  • $().each() 適用於操作頁面中的一組元素,例如設置樣式、監聽事件或批量添加內容。
  • $.each() 更通用,適用於處理各種非 DOM 的資料結構。特別是當遍歷 JSON 資料時,$.each() 是更合適的選擇。

總結

$().each(function(){})$.each() 在 jQuery 中的迴圈操作有不同的應用場景。

前者適用於遍歷 jQuery 選取的 DOM 元素集合,後者則更適合遍歷陣列或物件資料。

了解這兩種方法的區別,可以根據需求選擇合適的迴圈方式,讓程式碼更具可讀性和可維護性。

Similar Posts