var new_attr = document.createAttribute("id");
new_attr.nodeValue = "sugg" + i;
new_div.setAttributeNode(new_attr);
Das ist komplett überflüssig, ein DIV hat immer eine ID, d.h. du musst diese nicht erzeugen, sondern kannst sie direkt zuweisen:
new_div.id = "sugg" + i;
var new_attr = document.createAttribute("class");
new_attr.nodeValue = "div_sugglist";
new_div.setAttributeNode(new_attr);
Hier gilt das gleiche, nur das das Attribut className heißt.
var new_attr = document.createAttribute("onclick");
new_attr.nodeValue = "window.location.href='?p=" + i + "'";
new_div.setAttributeNode(new_attr);
Events lassen sich am einfachsten so zuweisen:
new_div.onclick = function(e) {
window.location.href = '?p=' + i;
}
Allerdings scheitert hier die Zuweisung von i, da beim Aufruf der Funktion immer das letzte i genommen wird. Da du das i anscheinend immer brauchst, ist es am einfachsten dies als Attribut an das Element zu hängen.
new_div.i = i;
new_div.onclick = function(e) {
window.location.href = '?p=' + this.i;
};
genauso mit der onmouseover Funktion:
new_div.onmouseover = function(e) {
sugglisthover(this.i, 'in');
};
usw.
Struppi.