Schleife durch
War es hilfreich?

Lösung

Dies sollte funktionieren:

$(document).ready(function(){
  // array of option elements' values
  var optionValues = [];
  // array of option elements' text
  var optionTexts = [];

  // iterate through all option elements
  $('#sel > option').each(function() {
    // get value/text and push it into respective array
    optionValues.push($(this).val());
    optionTexts.push($(this).text());
  });

  // test with alert
  alert(optionValues);
  alert(optionTexts);
});

Da Ihr select Element ID sel .

Andere Tipps

Die jQuery.map Funktion könnte das sein, was Sie suchen . Der folgende Code wird ein Array erstellen, die alle Werte oder Textwerte für die <select> Optionen enthält.

var values = jQuery.map(jQuery("#select")[0].options, function(option)
             {
                return option.value;
             });

var texts = jQuery.map(jQuery("#select")[0].options, function(option)
            {
                return option.innerHTML;
            });

Alles, was Sie tun müssen, ist das Array als ersten Parameter ohne die Klammern übergeben. Klammern schaffen ein neues Array, aber Sie brauchen nicht zu tun, weil Sie bereits ein Array übergeben. Genau das tun:

$("#CityLocal").autocompleteArray(
                MyBigArrayOfOptions,
                {
                        delay:10,
                        minChars:1,
                        matchSubset:1,
                        onItemSelect:selectItem,
                        onFindValue:findValue,
                        autoFill:true,
                        maxItemsToShow:10
                }
        );

Wenn ich Ihre Frage corrently zu verstehen, soll der folgende Code tun, was Sie brauchen:

myFunction($("#my-select option"));

Die Ausgabe der Abfrage ist bereits eine Reihe von Optionen, die Nachkommen der Auswahl sind, so dass Sie sie in ein anderes Array nicht drücken müssen. Alternativ kann, wenn Ihre Auswahl nicht eine ID haben, aber Sie haben das DOM-Element:

myFunction($("option", theSelect));

Anstecken diese Idee wieder in Ihren Code ein:

$("#CityLocal").autocompleteArray(
    $("option", theSelect),
    {
            delay:10,
            minChars:1,
            matchSubset:1,
            onItemSelect:selectItem,
            onFindValue:findValue,
            autoFill:true,
            maxItemsToShow:10
    }
);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top