2010-06-01 8 views
152

Ich habe ein <select> Element in HTML. Dieses Element repräsentiert eine Dropdown-Liste. Ich versuche zu verstehen, wie man die Optionen im <select> Element über JQuery iteriert.Iterate durch <select> Optionen

Wie verwende ich JQuery, um den Wert und den Text jeder Option in einem <select> Element anzuzeigen? Ich möchte sie nur in einer alert() Box anzeigen.

Antwort

264
$("#selectId > option").each(function() { 
    alert(this.text + ' ' + this.value); 
}); 
+2

Es ist komisch, das sollte funktionieren, aber aus irgendeinem Grund tut es esnt für mich ... :( – SublymeRick

+10

Es sollte $ (this) .val() anstelle von this.value wie IT ppl sagte. – Thihara

+0

Nur IT ppl's Antwort funktionierte für mich (und es war nicht nur das "dies") – user984003

70

Dieser arbeitete für mich

$(function() { 
    $("#select option").each(function(i){ 
     alert($(this).text() + " : " + $(this).val()); 
    }); 
}); 
+4

If Sie speicherten '$ (this)' in einer Variablen, es wäre effizienter, dh 'var $ this = $ (this); $ this.text(); $ this.val(); ... usw.' – Liam

15

auch parametrisierte jeweils mit dem Index und dem Element verwenden können.

$('#selectIntegrationConf').find('option').each(function(index,element){ 
console.log(index); 
console.log(element.value); 
console.log(element.text); 
}); 

// dies auch

$('#selectIntegrationConf option').each(function(index,element){ 
console.log(index); 
console.log(element.value); 
console.log(element.text); 
}); 
5

und die erforderlichen, nicht-jquery Weise für Anhänger arbeiten, da google jeder scheint hier zu senden:

var select = document.getElementById("select_id"); 
    for (var i = 0; i < select.length; i++){ 
    var option = select.options[i]; 
    // now have option.text, option.value 
    } 
0

auch nicht jQuery

[...select].forEach(el => { 
    // code 
});