bestimmte anzahl von daten in listenelement wrappen
hosi
- javascript
ich bekomme via ajax json daten vom server für jede in einem bestinnten ordner
vorhandene datei und jeden ordner wird ein DOM-listenelement zu einer liste hinzugefügt:
<ul id="liste">
<!--hier listenelemente und divs einfügen-->
</ul>
$.each(data.datei, function(){
//append div-element
})
$.each(data.ordner, function(){
//append div-element
})
jetzt hab ich einen pager und für diesen möchte ich alle 8 listenelemente ein listenelement
drumherum packen, denn in #liste entspricht 1 listenelement 1 seite (mit 8 divs).
wie stelle ich das denn am schlausten an denkt ihr? füge ich zuerst alle divs aus den daten der liste hinzu und
mache dann sowas wie wrappe (jquery .wrap()) jeweils 8 elemente in ein listenelement? oder erstelle ich zuerst
leere listenelemente (anzahl ordner+dateien/8) und packe dann per append jeweils 8 in ein listenelement?
ich finde grad keinen anfang und freu mich über tipps!
Lieber hosi,
mir schwant, dass Dein eigentliches Problem auf andere Art besser zu lösen wäre... Zu Deiner konkreten Frage:
füge ich zuerst alle divs aus den daten der liste hinzu und
mache dann sowas wie wrappe (jquery .wrap()) jeweils 8 elemente in ein listenelement?
Lieber nicht!
oder erstelle ich zuerst
leere listenelemente (anzahl ordner+dateien/8) und packe dann per append jeweils 8 in ein listenelement?
So ist es mit weniger Aufwand verbunden, sowohl für den Browser, als auch für Dich. Erstelle ein <li>-Element und befülle es mit wasauchimmer. Dann kommt das nächste dran.
Liebe Grüße,
Felix Riesterer.
Lieber Felix R.,
füge ich zuerst alle divs aus den daten der liste hinzu und
mache dann sowas wie wrappe (jquery .wrap()) jeweils 8 elemente in ein listenelement?Lieber nicht!
oder erstelle ich zuerst
leere listenelemente (anzahl ordner+dateien/8) und packe dann per append jeweils 8 in ein listenelement?So ist es mit weniger Aufwand verbunden, sowohl für den Browser, als auch für Dich. Erstelle ein <li>-Element und befülle es mit wasauchimmer. Dann kommt das nächste dran.
hmmm,
jetzt sieht das so aus:
ich pushe alle elemente zunächst in ein array.
for(i=0;i<itemarray.length; i++){
//mit if(i=14) werden die ersten 14 elemente erfolgreich in ein page-element gewrappt!
//ABER für die folgenden elemente passt das ja nicht mehr, sonst wird ja wieder alles umwrappt.
//ich müsste dann noch sagen "umschließe DIE children, die noch nicht von einem li.page umschlossen sind" aber WIE?
if(i===14){
$('#items').children().wrapAll('<li class="page"></li>');
}
itemarray[i].indexnumber=i;
$('#items').append('<div title="'+ itemarray[i].name + '" >'+itemarray[i].name+'</div>');
}
}
wenn ichs so rum mache wie du sagst, dann müsste ich in der for-schleife für i=14, i=14+15 etc jeweils ein li-element erstellen und die dann folgenden divs dort hinein "packen". aber wie kann ich die li's und div's dann nummerieren o.ä.?
etwas verlorene grüße
hosi
Hi,
wenn ichs so rum mache wie du sagst, dann müsste ich in der for-schleife für i=14, i=14+15 etc jeweils ein li-element erstellen und die dann folgenden divs dort hinein "packen".
Eigentlich musst du sie einfach immer nur ins "aktuelle" packen.
Und *dieses* dann bei Bedarf entsprechend "auswechseln".
aber wie kann ich die li's und div's dann nummerieren o.ä.?
Was genau verstehst du jetzt unter nummerieren?
MfG ChrisB