Andrea B.: Problem mit neuen Elementknoten in Dokument

Beitrag lesen

Hallo Leute,

ich habe ein kleines Problem mit Javascript. Und zwar habe ich Suchfunktion geschrieben, die an sich auch funktioniert. Der Nutzer gibt in ein Formular ein was er sucht, beim Absenden wird eine Funktion aufgerufen die einige Prüfungen vornimmt und wenn alles ok wird ein Array durchsucht und es werden Ergebnisse geliefert. Das Ergebnis kann ich problemlos mit document.write ausgeben, allerdings sind auf der Seite nur noch die Suchergebnisse zu sehen und die gesamte Navigation die noch um das Suchformular ringsrum ist, ist nicht mehr zu sehen.

Also habe ich unter dem Formular einen Bereich mit ID suchergebnisse angelegt (<ul id="suchergebnisse"></ul>). Dort sollen nun alle Ergebnisse als neue Listeneinträge eingehängt werden. Das Problem: Die Einträge blinken im Browser kurz auf (zumindest die Punkte der Listeneinträge) und sind dann wieder verschwunden. Wie bekomme ich es hin dass die Ergebnisse korrekt unter dem Suchformular angezeigt werden?

Auch vermute ich, dass es bei ...getElementByTagName("li")[a]... Probleme geben könnte. Nicht für jedes a gibt es einen Listeneintrag - a ist also nicht fortlaufend, aber bei getElementByTagName("li")[a] gibt a doch das a-te vorkommen an, oder? Könnte ich evtl. aber umgehen indem ich die Suchergebnisse erst in ein weiteres Array schreiben und das dann ausgeben lasse.

Meine Suchfunktion:
function suche(keywords)
{
 for(a=1;a<k.length;a++)
 {
  isin = 0;
  for(b=0;b<keywords.length;b++)
  {
   if(k[a].toLowerCase().indexOf(keywords[b]) != -1)
   {
    isin = 1;
   }
   else
   {
    isin = 0;
    break;
   }
  }
  if(isin == 1)
  {
   var newli = document.createElement("li");
   var newlitext = document.createTextNode(u[a]);
   document.getElementById("suchergebnisse").appendChild(newli);
   document.getElementByTagName("li")[a].appendChild(newlitext);
  }
 }
}

Danke im Voraus,
Andrea