Liste mit Suchfunktion - Suchen durch HTML/Javascript Befehl

  • Hallo,


    Ich bräuchte da mal Hilfe bei einem Problem, das für jemanden, der sich mit Javscript und HTML gut auskennt, wahrscheinlich eine Sache von ein paar Minuten ist.:S


    Und zwar muss ich auf einer Website, auf der es eine Liste gibt, die auch ein Suchfeld bereitstellt (siehe Fotos), per HTML/JavaScript nach einem Element in dieser Liste suchen.

    Ich bekomme es hin, auf das 'input' Element des Suchfeldes zuzugreifen und dessen 'value' Attribut auf den Wert zu setzen, nach dem ich suchen will. Allerdings wird die Liste nicht aktualisiert.. Wenn ich die Suche von Hand durchführe funktioniert aber alles ganz normal - die Liste wird aktualisiert und nur noch das Element, nachdem ich gesucht habe, wird angezeigt.


    Wahrscheinlich liegt es daran, dass irgendein Event nicht ausgelöst wird o.ä.. Wichtig ist vielleicht noch, dass die Liste nicht von Anfang an komplett geladen ist, sondern, je mehr ich runterscrolle, desto mehr Listeneinträge werden geladen.(AJAX o.ä.?)


    Ich habe mal vier Bilder angehangen::)
    (1) Von einem Ausschnitt aus dem HTML der Suchliste

    (2) Dem Setzen des Input Attributs 'value' auf einen Suchwert

    (3) Das Listenelement mit dem Suchwert ohne erneuerte Liste

    (4) Das Listenelement nach Suche per Hand statt mit JavaScript

    Ich wäre sehr sehr dankbar über ein paar Tipps, ärgere mich jetzt schon einige Tage mit dem Problem rum.


    Danke im Voraus und Grüße,

    Roman.

  • Würde ich sehr gerne tun, leider ist die Seite, auf der sich die Liste befindet, von der Arbeit und ich habe weder Zugriff auf den Code, noch darf ich sie an Dritte weitergeben..

    Deshalb hatte ich auf ein paar Tipps gehofft, wie ich vielleicht selbst auf die Lösung des Problems komme. Z.B. darüber, dass ich herausfinde welches Event ich auf welchem Element auslösen muss? Ich weiß nur leider nicht genau wie ich das herausfinde..


    Falls jemand trotz der wenigen Informationen, die ich geben kann, ein paar Tipps hat, wie ich mich der Lösung nähern kann, wäre das super.


    Ansonsten muss ich dann leider weiter rumprobieren.


    Danke und Grüße,

    Roman.

  • das wird schwer.

    Auch verstehe ich nicht ganz wo du nach was suchen willst .

    Du gibst in den Suchfeld zb "Aachen" ein ,

    was soll dann passieren ?

    Steht hinter den LInk Aachen noch irgendwelche Texte drinne , oder wird da irgendwie auf Datenbanken zugegriffen , odder wo soll nach was gesucht werden ?


    Oder sollen nur die Listene einträge makiert werden in den das Wrt "Aachen" vorkommt ?

  • Ich muss in der Liste per JavaScript/HTML eine Stadt finden/auswählen. Normalerweise könnte ich das dann ja z.B. per XPath über

    "$x("//div[text()='Aachen']");" machen. Das funktioniert auch.


    Über diesen Befehl finde ich aber nur Elemente, die in der Liste bereits geladen sind. Wenn ich die Liste aber öffne, sind erstmal nur 25 der Elemente geladen. Wenn ich die Liste runterscrolle, werden dann mehr und mehr Elemente geladen.


    D.h., wenn das gesuchte Element nicht unter den 25 Elementen ist, die direkt beim Öffnen der Liste geladen werden, dann kann ich es über $x("//div[text()='Zürich']"); nicht finden. Weil es ja in der Liste noch nicht vorhanden ist, bis ich sie komplett runtergescrollt habe.


    Also habe ich die 2 Optionen:

    1. Liste runterscrollen, bis alle Elemente geladen sind und dann das Element suchen/auswählen.

    2. Über das Suchfeld die Stadt suchen, dann wird die gesuchte Stadt in die Liste geladen und angezeigt (siehe Bild). Und sie dann auswählen.


    Jedoch reichen meine Kentnisse leider nicht aus, eine der beiden Optionen umzusetzen..


    Deshalb wäre ich über Tipps sehr dankbar.

  • Ich habe eine halbwegs zufriedenstellende Lösung gefunden.


    Ich scrolle das <div> Element mit den Listeneinträgen über


    Code
    1. listenElement.scrollTop = listenElement.scrollHeight;


    so lange runter, bis das gesuchte Element in der Liste geladen wurde und wähle es dann aus über


    Code
    1. $x("//div[text()='Stadtname']")[0].click();


    Grüße,

    Roman.