Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[JS] suche in allen dropdowns der seite

Empfohlene Antworten

Veröffentlicht

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...


var oForms = document.forms;

for (var i = 0; i < oForms.length; i++) {

   var oForm = oForms[ i];

   var oOptions = oForm.elements.options;

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

      if ( oOptions[ t].text == searchStr) {

         alert('gefunden!');

         break;

      }

   }

} 

ist nicht getestet!

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)

mom ich teste ma lokal

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>

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!

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.