10

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

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

   }
   else{

   }
}

控制台说:

未捕获的类型错误:对象文件:///Users/.../index.html# 没有方法“位置”

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

我究竟做错了什么 ?

4

2 回答 2

13

改用这个:

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

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

于 2012-05-16T22:26:01.460 回答
1

您可以执行以下操作:

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

for(var i = 0; i < elems.length; i++){
   arr[i] = elems[i];
}
于 2012-05-16T22:11:33.970 回答