2016-07-28 6 views
2

Ich möchte die CSS-Eigenschaften von elementDiv mithilfe von jQuery ändern. Ich verstehe, dass bei der Verwendung von [i] ich ein DOM-Element und kein jQuery-Objekt bekomme. Kann dies geändert werden, um die jQuery-CSS-Methode zu akzeptieren?Zugriff auf die jQuery-Methode bei Verwendung von [i]

Der folgende Code gibt den folgenden Fehler - Object #<HTMLDivElement> has no method 'css'

for (var i = 0; i < elementDiv.length; i++) { 
    if (i >= pagenumber * elementsPerPage && i <= pagenumber * elementsPerPage) { 
     elementDiv[i].css('display', 'block'); 
    } else { 
     elementDiv[i].css('display', 'none'); 
    } 
} 

Antwort

0

Nur each verwenden:

elementDiv.each(function(i) { 
    if (i >= pagenumber * elementsPerPage && i <= pagenumber * elementsPerPage) { 
     $(this).css('display', 'block'); 
    } else { 
     $(this).css('display', 'none'); 
    } 
}); 

Die jQuery docs viele nützliche Beispiele zeigen.

+1

'.each()' gegenüber der 'for' Schleife ist nicht das Problem hier - Sie könnten beide verwenden und es würde keinen Unterschied machen. Was in Ihrem Code anders ist, ist, dass es den HTML-Elementverweis ('this' in Ihrem Code) in' $() 'einschließt. Der OP-Code hat das nicht gemacht. Es würde genauso gut funktionieren, '$ (elementDiv [i])' im OP-Code zu verwenden. Ich schlage nicht vor, ob '.each()' oder die 'for'-Schleife besser ist als die andere, nur dass sie für das Problem hier nicht relevant sind, und es ist immer gut, das tatsächliche Problem zu erkennen und nicht zu verwechseln mit etwas anderem. –

Verwandte Themen