Tôi có một mảng các phần tử HTML. Tôi đang kiểm tra xem một đối tượng trước đó trong mảng có tồn tại như thế này không:Nhận mọi mục thứ n trong mảng
var boxes = $('.box'); // creating the array
boxes.each(function(i){ // going through the array
var prevBox = i>0?$(boxes[i-1]):false; // check whether a previous box exists
if (prevBox) { } // do something
else { } // do something else
});
Điều này hoạt động tốt. Nhưng tôi cũng sẽ cần phải kiểm tra sự tồn tại của mỗi đối tượng thứ tư (hộp) trong mảng, hoặc chính xác hơn là một đối tượng ba đối tượng trước khi đối tượng hiện tại tồn tại.
này không hoạt động:
var prevBox = i>0?$(boxes[i-4]):false;
Tôi tin rằng sử dụng jQuery.grep()
và kiểm tra nếu (i % 4) == 0
có thể là câu trả lời, nhưng với kiến thức hạn chế của tôi về Javascript, tôi không biết làm thế nào để áp dụng nó vào những gì tôi có ngay.
Mọi người đều có thể trợ giúp? Cảm ơn!
Cảm ơn Patrick, nhưng nó không hoàn toàn làm những gì tôi theo đuổi. Tôi cần lấy giá trị 'position(). Top' từ đối tượng và thêm một giá trị khác vào nó. Trong các 'hộp [3]' khác cần một giá trị từ 'hộp [0]', 'hộp [6]' từ 'hộp [3]', 'hộp [8]' từ 'hộp [5]' và cứ thế. Xin lỗi, tôi đang gặp sự cố khi giải thích điều này một cách đơn giản và do đó không đủ cụ thể. – hannu
Nói cách khác, trên mỗi lần lặp, tôi cần phải quay lại ba bước, lấy giá trị 'position(). Top' từ hộp và sử dụng nó để tính giá trị mới cho hộp hiện tại này. – hannu
@hannu: Bạn có nói rằng đối với * mỗi phần tử *, bạn muốn cái nào ở đằng sau nó? Việc đánh số của bạn trong nhận xét ở trên không nhất quán. Nó đi từ 3 đến 6 đến 8. Không có một mô hình ở đó. – user113716