Lieber Chris,
ich weiß zwar noch immer nicht was ein ArrayList-Objekt ist und kann, aber das nur nebenbei.
Was mich insgesamt verunsichert, ist die Tatsache, warum Du <li>-Elemente aus einer <ul> entfernst, um dann diese Elemente wieder einzufügen. Wäre es nicht sinnvoller, mittels einer per JavaScript zugewiesenen Klasse diese <li>-Elemente einfach zu "behandeln"? Damit kannst Du ausgewählten <li>-Elementen eine bestimmte Klasse zuweisen, während die restlichen eine andere Klasse erhalten.
Ich versuche einmal deine Funktion zu verstehen:
function initArrayListS(intID) {
arrListS = new ArrayList();
/* Wie gesagt, dieses Objekt ist mir fremd. ArrayList gehört nicht zum regulären Sprachumfang von JavaScript... */
var getListNodes = document.getElementById('serveritemCarrier');
/* Warum nennen wir das gemeinte HTML-Elementobjekt hier nicht auch "ulContainer", so wie später? Das hilft, Deinen Code zu verstehen... */
if(getListNodes) {
for(var i=0;i<getListNodes.childNodes.length;i++) {
/* Warum nicht so?
var listNodes = document.getElementById("serveritemCarrier").getElementsByTagName("li");
Da kann man jetzt auch durch die gefundenen <li>-Elemente durchiterieren. Das ist auch für einen "Außenstehenden" schneller begreifbar. */
if(getListNodes.childNodes[i].id) {
/* Aha, die Teile müssen eine passende ID haben? Gibt es darinnen denn auch <li>-Elemente, die ausscheiden? */
if(getListNodes.childNodes[i].id.split("_")[0] == "slide") {
/* Anscheinend... nur wenn da "slide_xyz..." in der ID steht, werden sie genommen... */
arrListS.add(getListNodes.childNodes[i]);
/* Das ist eine Methode des ArrayList-Objektes, das ich ja nicht kenne... */
getListNodes.removeChild(getListNodes.childNodes[i]);
/* Warum entfernst Du hier das <li>-Element, wenn Du doch später mit innerHTML eh alles platt machst? Das ist in meinen Augen unnötig. */
i=i-1;
/* Tja, das bräuchtest Du nicht, wenn Du mit getElementsByTagName arbeitetest und anschließend die Elemente nicht einzeln entferntest. */
}
}
}
}
displayListS(actFirstNodeS);
/* Woher kommt diese Funktion? Und was ist "actFirstNodeS"? */
}
Vielleicht ist Dein Ansatz hier tatsächlich nicht anders lösbar, aber mir scheint doch sehr, dass Du in der <ul id="serveritemCarrier">
eher die nichtbenötigten Elemente entfernen solltest, um nur die benötigten zu belassen (das bedeutet auch, nicht-<li>-Elemente wie Textnodes aus der <ul> zu entfernen!), und um diese dann dynamisch mit Klassen zu versehen. Das sollte dann auch im dümmsten Browser wie dem IE klappen.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)