Da die j
in der jQuery-Selektor ist nur ein Teil der Zeichenfolge und keine Variable. Sie müssen das Selektor-String durch Verkettung erstellen:
var firstRC = $("#id_1").children();
for(j=0;j<firstRC.length;j++) {
if(j>5) {
$("#id_1 :eq(" + j + ")").addClass("cssClass");
}
}
Darüber hinaus müssen Sie ein Leerzeichen vor :eq
, oder Sie werden das j-te Element mit dem id id_1
und nicht dem j-te Kind in einer wählen Element mit id_1
.
Allerdings machen Sie es weit zu kompliziert. jQuery hat eine gt
Wähler so dass Sie alle Elemente auszuwählen * g * rößere * t * han einen bestimmten Index:
$("#id_1 :gt(5)").addClass("cssClass");
Wenn Sie über mehrere Elemente Schleife brauchen sollten Sie cÜberprüfen aus each
Methode jQuery , das ist viel besser einfacher zu verwenden als eine for
Schleife. Innerhalb der each
Schleife bezieht sich this
auf das aktuelle Element.
Beispiel:
$("#id_1").children().each(function(index) {
if (index > 5)
$(this).addClass("cssClass");
});
'viel better'? In Bezug auf die Leistung ist eine "for-Schleife" in der Tat viel besser: http://jsperf.com/for-loop-vs-each – jAndy
True. Wenn Leistung ein Problem ist, würde ich jQuery überhaupt nicht empfehlen. – RoToRa
Sie können jQuery verwenden, auch wenn Leistung wirklich wichtig ist. Wie auch immer, jede 'funktionale' Schleife ist ziemlich langsam im Vergleich zu nativen' for' oder 'while' Loops. Ich war nur gestört durch die relative Aussage 'viel besser als (..)' – jAndy