我如何迭代jquery选择器的结果

时间:2012-05-16 22:08:31

标签: javascript jquery

当我尝试将所有<a>元素存储为数组中的对象(使用$('a')),然后获取每个元素的位置时,它不起作用。

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

   }
   else{

   }
}

控制台说:

  

未捕获TypeError:对象文件:///Users /.../index.html#没有方法'position'

当我使用类名而不是标签名选择的单个元素时,一切正常。

我做错了什么?

2 个答案:

答案 0 :(得分:11)

请改用:

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

year的价值是多少?我更喜欢这样命名jQuery对象:var $year = $("#year"); $帮助你记住它是一个jQuery对象。

答案 1 :(得分:1)

您可以执行以下操作:

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

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