[javascript] jQuery를 사용하여 선택의 모든 옵션을 얻는 방법은 무엇입니까?

ID를 전달하여 jQuery를 통해 선택의 모든 옵션을 얻는 방법은 무엇입니까?

나는 텍스트가 아닌 그들의 가치만을 얻으려고합니다.



답변

사용하다:

$("#id option").each(function()
{
    // Add $(this).val() to your list
});

.each () | jQuery API 설명서


답변

jQuery는 모르지만 select 요소를 얻으면 ‘options’객체가 포함되어 있다는 것을 알고 있습니다.

var myOpts = document.getElementById('yourselect').options;
alert(myOpts[0].value) //=> Value of the first option


답변

$.map 아마도 가장 효율적인 방법 일 것입니다.

var options = $('#selectBox option');

var values = $.map(options ,function(option) {
    return option.value;
});

선택한 옵션 $('#selectBox option:selected')만 원하는 경우 변경 옵션을 추가 할 수 있습니다 .

첫 번째 줄은 모든 확인란을 선택하고 jQuery 요소를 변수에 넣습니다. 그런 다음 .mapjQuery 의 함수 를 사용하여 해당 변수의 각 요소에 함수를 적용합니다. 우리가하고있는 모든 것은 우리가 관심있는 모든 요소의 가치를 돌려주는 것입니다. map 함수 안에서 반환하기 때문에 실제로 요청한대로 값의 배열을 만듭니다.


답변

일부 답변은을 사용 each하지만 map여기서 IMHO가 더 나은 대안입니다.

$("select#example option").map(function() {return $(this).val();}).get();

mapjQuery 에는 적어도 두 가지 기능이 있습니다. Thomas Petersen의 답변은 “Utilities / jQuery.map”을 사용합니다. 이 답변은 “여행 /지도”(따라서 좀 더 깔끔한 코드)를 사용합니다.

값으로 수행 할 작업에 따라 다릅니다. 예를 들어 함수에서 값을 반환하려는 map경우 더 나은 대안 일 수 있습니다. 그러나 값을 직접 사용하려는 경우에는 아마도 원할 것 each입니다.


답변

$('select#id').find('option').each(function() {
    alert($(this).val());
});


답변

$("#id option").each(function()
{
    $(this).prop('selected', true);
});

는 있지만 올바른 방법은 요소의 DOM 속성을 설정하는 것입니다, 그래서 좋아한다 :

$("#id option").each(function(){
    $(this).attr('selected', true);
});


답변

이것은 옵션 값을 #myselectbox깔끔하고 깔끔한 배열로 만듭니다.

// First, get the elements into a list
var domelts = $('#myselectbox option');

// Next, translate that into an array of just the values
var values = $.map(domelts, function(elt, i) { return $(elt).val();});