2012-05-16 23 views
7

Khi tôi cố gắng lưu trữ tất cả các phần tử <a> làm đối tượng trong mảng (sử dụng $('a')) và sau đó nhận vị trí của mỗi bộ lọc, nó không hoạt động.làm cách nào để lặp lại kết quả của bộ chọn jquery

years = $('a'); 
for(i=0;i< years.length;i++){ 
    if(years[i].position().top > year.position().top){ 

    } 
    else{ 

    } 
} 

điều khiển nói:

Uncaught TypeError: Object file:///Users/.../index.html# has no method 'position'

Khi tôi làm điều đó với yếu tố duy nhất bởi tên lớp thay vì tên thẻ được lựa chọn, tất cả mọi thứ hoạt động tốt.

Tôi đang làm gì sai?

+3

Chúng tôi có nên đoán JavaScript của bạn không? Hoặc bạn có thể giúp chúng tôi giúp bạn, bằng cách hiển thị những gì bạn đã thử? –

+5

Không mã nào có thể không bị lỗi. – Bergi

Trả lời

9

Sử dụng này để thay thế:

$("a").each(function() { 
    var pos = $(this).position(); 
    if (pos.top > year.position().top) { 
    // hurray 
    } 
}); 

Ngoài ra giá trị của year là gì? Tôi thích đặt tên cho các đối tượng jQuery như sau: var $year = $("#year");$ giúp bạn nhớ đó là đối tượng jQuery.

+0

Hy vọng rằng đã làm việc cho bạn –

+0

cảm ơn bạn, nó hoạt động :) – Michael

1

Bạn có thể làm như sau:

var arr = [], elems = $('a'); 

for(var i = 0; i < elems.length; i++){ 
    arr[i] = elems[i]; 
} 
+0

arr không xác định, bạn có thể đặt không có thuộc tính của nó. – Bergi

Các vấn đề liên quan