Thứ Hai, 16 tháng 2, 2009

Sử dụng jQuery.each() trong JQuery

Một chức năng iterator tổng quát, này có thể được sử dụng cho suốt lặp đi lặp lại trên cả hai đối tượng và mảng. Mảng và các đối tượng mảng giống như với một property lenght (chẳng hạn như chức năng của các đối số đối tượng) được lặp lại bởi chỉ số, từ 0 đến length-1. Các đối tượng khác được lặp lại bằng các thuộc tính tên của mình.

jQuery.each(collection, callback(indexInArray, valueOfElement))
collection : Các đối tượng hoặc một mảng được duyệt qua.
callback (indexInArray, valueOfElement): Chức năng này sẽ được thực hiện trên mọi đối tượng.

Các chức năng $.each() không giống như .each(), được sử dụng cho chuyển đổi, độc quyền, trên một đối tượng jQuery. Các chức năng $.each() có thể được sử dụng cho chuyển đổi qua bất kỳ collection, dù đó là một Map (đối tượng JavaScript) hoặc một mảng. Trong trường hợp của một mảng, các callback được thông qua chỉ số mảng và mảng một value tương ứng mỗi lần.(value cũng có thể được truy cập thông qua các từ khoá này, nhưng sẽ luôn luôn quấn Javascript giá trị này như là một đối tượng ngay cả khi nó là một chuỗi đơn giản, giá trị số.) phương thức này trả về số đầu tiên của nó, các đối tượng đó đã được lặp lại.

$.each([52, 97], function(index, value) {
       alert(index + ': ' + value);
});

ví dụ trên tạo ra hai thông điệp:

0: 52
1: 97

Nếu map được sử dụng như là bộ sưu tập, các callback được thông qua một cặp key có giá trị each lần lượt như sau:

var map = {
       'flammable': 'inflammable',
       'duh': 'no duh'
};
$.each(map, function(key, value) {
       alert(key + ': ' + value);
});

Một lần nữa, điều này tạo ra hai thông điệp:

lammable: inflammable
duh: no duh

Chúng ta có thể phá vỡ vòng lặp $.each() tại một iteration cụ thể bằng cách làm cho trở lại chức năng callback sai.. Trả lại không sai là giống như là vẫn tiếp tục câu lệnh trong một vòng lặp for, nó sẽ bỏ qua ngay cho phiên tiếp theo.

Ví dụ: duyệt qua mảng hiển thị những con số từ cả hai chữ và số

    
    
    
    
    
    

DangTrung.

Không có nhận xét nào:

Đăng nhận xét