10

<a>(を使用して)すべての要素をオブジェクトとして配列に格納し、各要素の位置を取得しようとすると$('a')、機能しません。

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

   }
   else{

   }
}

コンソールによると:

Uncaught TypeError:Object file:/// Users /.../ index.html#にはメソッド'position'がありません

タグ名の代わりにクラス名で選択された単一の要素でそれを行うと、すべてが正常に機能します。

私は何を間違っているのですか?

4

2 に答える 2

13

代わりにこれを使用してください:

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

また、の値はyear何ですか?私は次のようにjQueryオブジェクトに名前を付けることを好みます:それがjQueryオブジェクトであることを思い出すvar $year = $("#year");$に役立ちます。

于 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 に答える