<select> 옵션을 통해 반복


202

나는이 <select>HTML의 요소를. 이 요소는 드롭 다운 목록을 나타냅니다. <select>JQuery를 통해 요소 의 옵션을 반복하는 방법을 이해하려고합니다 .

JQuery를 사용하여 <select>요소 에 각 옵션의 값과 텍스트를 표시하려면 어떻게합니까 ? alert()상자 에 표시하고 싶습니다 .

답변:


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

2
그것은 이상하지만, 이것은 작동하지만 어떤 이유로 든 나를 위해하지 않습니다 ... :(
SublymeRick

14
IT ppl과 같이 this.value 대신 $ (this) .val ()이어야합니다.
Thihara

만 IT PPL의 대답은 나를 위해 일한 (그리고 그것은 단지 "이"하지 않았다)
user984003

1
값과 텍스트를 각각 얻으려면 $ (this) .val () 및 $ (this) .text () 여야합니다.
Amit Bhagat

5
@AmitKB-기본 DOM 메소드를 사용하여 텍스트와 값을 추출하는 것이 좋습니다. 1) 더 짧습니다. 2) 두 개의 새로운 jQuery 객체를 생성하지 않습니다.
karim79

79

이것은 나를 위해 일했다

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

5
$(this)변수에 저장하면 더 효율적입니다.var $this = $(this); $this.text(); $this.val();...etc.
Liam

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);
}

코드 만 답변하지 않는 것이 좋습니다. 이것이 어떻게 문제를 해결하는지 또는 이것이 기존 답변과 어떻게 다른지에 대한 설명을 추가하십시오. 리뷰에서
Nick

1

jQuery없이 이미 제안 된 답변에 대한 또 다른 변형.

Object.values(document.getElementById('mySelect').options).forEach(option => alert(option))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.