Zum Inhalt springen

[JS] suche in allen dropdowns der seite


HELLinG3R

Empfohlene Beiträge

Hallo, ich habe hier die Aufgabe, einen bestimmten text in einem dokument zu finden.

Das Problem hierbei ist, dass auch in dropdowns gesucht werden soll, und die dropdowns werden dynamisch generiert.

Das bedeutet eine variable anzahl dropdowns mit variablen längen.

hier mal der code:

var j=-1;

	for (var dropdown in document.forms[1].elements){

		j++;

		alert(document.forms[1].elements[1].options[2].text);

		for (i=0; i < document.forms[1].elements[j].length; i++) {

			alert(document.forms[1].elements[0].options[2].text);

			if (document.forms[1].elements[j].options[i].text == str){

				alert("juhuu!");

			}

		}

	}

Das normale suchen funktioniert schon, es hakt nur an den dropdowns und ich komme einfach nicht weiter.

Auf der seite gibts 2 Formulare, das zur sucheingabe und das mit allen dropdowns.

Ich hoffe, hier kann mir jemand einen kleinen denkanstoss geben...

Link zu diesem Kommentar
Auf anderen Seiten teilen

danke, ich werds gleich mal testen.

Aber eine erklärung warum, wäre auch nicht schlecht..... ;) bin doch noch JS neuling!

hm, irgendwas funktioniert da nicht, ich bekomme keine messagebox, stattdessen kehrt der browser zur eingabeseite zurück (die seite vor der, wo das javascript ausgeführt wird)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry, das es so lang gedauert hab, aber ich hab ja schließlich auch noch anderes zu tun :beagolisc

also hier, das is getestet und geht:

Es werden alle Selects durchsucht, auch die die nicht in einem Formular sind!


<html>

   <head>

      <title>

      JS TEST

      </title>

   </head>

   <body>

      <script>


      function searchOptions( searchStr) {

         // Array von allen Select Objecten heraussuchen

         var aoSelects = document.getElementsByTagName( "select");


         for ( var t = 0; t < aoSelects.length; t++) {

            var oSelect = aoSelects[ t];

            // Array von Options Objecten aus dem Select Object "extrahieren"

            var aoOptions = oSelect.options;


            for ( var s = 0; s < aoOptions.length; s++) {

               var oOption = aoOptions[ s]; 

               // Prüfen ob das Label oder der Value des Textes mit dem Suchwert übereinstimmen

               if ( oOption.text == searchStr || oOption.value == searchStr) {

                  alert('gefunden im Select: ' + oSelect.name + ',\n an ' + ( s + 1 ) + '. Stelle!');

                  return;

               }

            }

         }


         alert( 'nichts gefunden!');

      }


      </script>


      <select name="select1">

         <option>test</option>

         <option>test1</option>

      </select>


      <select name="select2">

         <option>test2</option>

         <option>test3</option>

      </select>


      <select name="select3">

         <option>test4</option>

      </select>


      <a href="javascript: searchOptions( 'test');">Such test</a>

      <a href="javascript: searchOptions( 'test2');">Such test2</a>

      <a href="javascript: searchOptions( 'test4');">Such test4</a>

   </body>

</html>

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich bin dir sehr dankbar und werde deine Lösung einsetzen; ich muss sie jetzt nur noch so implementieren, dass auch der normale text weiterhin durchsucht wird und versuchen, deinen Code zu verstehen und warum meiner nicht ging ;)

Also Danke nochmal!

also auf den 1. Blick würd ich sagen, dein code ging schonma nicht, weil er nur options innerhalb eines Formulars durchsucht hätte.

Weiterhin war das Problem, das du die Options direkt als Formularelemente angesprochen hast, aber man dazwischen ncoh den namen des Select Objectes brauchst

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...