Alexander (HH): Mit Javascript nach einem bestimmten Wort im body suchen

Beitrag lesen

Hallo Micha,

Geht das nur in php oder kann ich das auch in html? Meine Php kentnisse sind leider bescheiden =(

Lg, Armin

HTML ist keine Programmiersprache, damit geht das leider nicht. Du kannst aber Javascript benutzen, um die Suche komplett auf dem Client auszuführen.

Einschränkungen: Der Browser muß Javascript können, Javascript muß eingeschaltet sein, und der Browser muß mit den benutzten Features umgehen können.

Ich würde es so angehen:

Per Javascript ein kleines Formular mit einem Eingabefeld in den DOM-Baum einbauen, so ist die Suche ohne ausreichend funktionsfähiges Javascript gar nicht zu sehen. Ein onclick-Handler für den Submit-Button ruft eine Javascript-Funktion auf, die die Liste durchsucht und für passende Listenelemente die className-Eigenschaft auf eine CSS-Klasse mit rotem Hintergrund ändert.

Grober Ansatz:

CSS: li.found { background:red; } li.notfound { /* nix */ }
HTML: <ul id="people"><li>Paulchen Panter</li><li>Bugs Bunny</li><li>Elmar Fudd</li></ul>

Den DOM-Node der Liste bekommst Du über document.getElementById("people"). Über dessen Kinder iterierst Du, wenn der Text des jeweiligen Kindes zum Suchstring paßt, setzt Du child[i].className="found", ansonsten child[i].className="notfound";

Ob der Text paßt, kannst Du mit einer RegExp testen, was aber vermutlich für Deinen Fall Overkill ist. Ein child[i].firstChild.nodeValue.toLowerCase().indexOf(suchstring.toLowerCase())>=0 sollte vollkommen ausreichend sein, wobei Du den Suchstring besser einmal außerhalb der Schleife "verkleinerst".

Siehe auch: SelfHTML -> Javascript -> Objekt-Referenz -> node.

Alexander