12 Stimmen

Wie kann ich über die Ergebnisse eines jQuery-Selektors iterieren?

Wenn ich versuche, alle <a> Elemente als Objekte in Array (mit $('a') ) und dann die Position jedes einzelnen von ihnen abrufen, funktioniert das nicht.

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

   }
   else{

   }
}

Die Konsole sagt:

Ungefangener TypeError: Das Objekt file:///Users/.../index.html# hat keine Methode 'position'

Wenn ich das mit einem einzelnen Element tue, das nach dem Klassennamen statt nach dem Tag-Namen ausgewählt wird, funktioniert alles gut.

Was mache ich falsch?

14voto

Jamund Ferguson Punkte 16233

Verwenden Sie stattdessen dies:

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

Wie hoch ist der Wert von year ? Ich bevorzuge es, jQuery-Objekte wie folgt zu benennen: var $year = $("#year"); Die $ hilft Ihnen, sich daran zu erinnern, dass es ein jQuery-Objekt ist.

1voto

Headshota Punkte 20323

Sie können Folgendes tun:

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

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X