<select>オプションを反復する


202

私が持っている<select>HTMLの要素を。この要素はドロップダウンリストを表します。<select>JQueryを介して要素のオプションを反復処理する方法を理解しようとしています。

JQueryを使用して<select>要素の各オプションの値とテキストを表示するにはどうすればよいですか?alert()ボックスに表示したいだけです。

回答:


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

2
奇妙なことに、これはうまくいくはずですが、なぜか私には
うまくいき

14
IT担当者が言ったthis.valueではなく、$(this).val()である必要があります。
ティハラ、

IT PPLの答えだけが私にとってうまくいきました(そして、「これ」だけではありませんでした)
user984003

1
値とテキストをそれぞれ取得するには、$(this).val()と$(this).text()である必要があります
Amit Bhagat 2014年

5
@AmitKB-ネイティブDOMメソッドを使用してテキストと値を抽出することをお勧めします。1)より短い2)2つの新しいjQueryオブジェクトの作成を避けます。
karim79 2014

79

これは私のために働いた

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

5
あなたが保存されている場合$(this)、変数には、すなわち、より効率的であるvar $this = $(this); $this.text(); $this.val();...etc.
リアム・

25

パラメータ化されたそれぞれをインデックスと要素とともに使用することもできます。

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

//これも機能します

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

17

そして、グーグルがすべての人をここに送るように見えるので、フォロワーにとって必要な非jqueryの方法:

  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
  }

4

あなたもこのように試すことができます。

あなたのHTMLコード

<select id="mySelectionBox">
    <option value="hello">Foo</option>
    <option value="hello1">Foo1</option>
    <option value="hello2">Foo2</option>
    <option value="hello3">Foo3</option>
</select>

あなたがJQueryコーディングする

$("#mySelectionBox option").each(function() {
    alert(this.text + ' ' + this.value);
});

または

var select =  $('#mySelectionBox')[0];

  for (var i = 0; i < select.length; i++){
    var option = select.options[i];
    alert (option.text + ' ' + option.value);
  }


1

Jqueryが不要な場合(ES6を使用できる場合)

for (const option of document.getElementById('mySelect')) {
  console.log(option);
}

コードのみの回答はお勧めしません。これにより問題がどのように解決されるか、またはこれが既存の回答とどのように異なるかについて説明を追加してください。口コミより
ニック

1

jQueryなしですでに提案されている回答の別のバリエーション。

Object.values(document.getElementById('mySelect').options).forEach(option => alert(option))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.