最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How do I iterate over the results of a jQuery selector? - Stack Overflow

programmeradmin1浏览0评论

When I'm trying to store all <a> elements as objects in array (using $('a')), and then get the position of each of them, it doesn't work.

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

   }
   else{

   }
}

Console says:

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

When I do it with single element selected by class name instead of tag name, everything works fine.

What am I doing wrong ?

When I'm trying to store all <a> elements as objects in array (using $('a')), and then get the position of each of them, it doesn't work.

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

   }
   else{

   }
}

Console says:

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

When I do it with single element selected by class name instead of tag name, everything works fine.

What am I doing wrong ?

Share Improve this question edited Aug 2, 2021 at 14:39 isherwood 61.1k16 gold badges120 silver badges168 bronze badges asked May 16, 2012 at 22:08 MichaelMichael 7436 silver badges18 bronze badges 1
  • 3 Should we guess your JavaScript? Or could you possibly help us to help you, by showing what you've tried? – David Thomas Commented May 16, 2012 at 22:10
Add a comment  | 

2 Answers 2

Reset to default 15

Use this instead:

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

Also what is the value of year? I prefer to name jQuery objects like this: var $year = $("#year"); The $ helps you remember it's a jQuery object.

You can do the following:

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

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

评论列表(0)

  1. 暂无评论