jQuery는 특정 옵션 태그 텍스트를 얻습니다.


1234

좋아, 내가 이것을 가지고 있다고 말하십시오.

<select id='list'>
    <option value='1'>Option A</option>
    <option value='2'>Option B</option>
    <option value='3'>Option C</option>
</select>

값이 '2'인 경우 "옵션 B"를 얻으려면 선택기가 어떻게 표시됩니까?

이것은 선택된 텍스트 값 을 얻는 방법을 묻는 것이 아니라 value 속성에 따라 선택 여부에 관계없이 그중 하나만 선택 한다는 점에 유의하십시오 . 나는 시도했다 :

$("#list[value='2']").text();

그러나 작동하지 않습니다.


이 기간 동안 다음을 사용하십시오.$("#list option").filter(function () { return $(this).html() == "stuff"; }).val();
rook

답변:


1122

이 ID를 가진 요소에 대해 찾고 list속성을 가지고 value같음 2.
당신이 원하는 것은 인 option의 자녀 list:

$("#list option[value='2']").text()

4
이 별명에 감사드립니다. 동적으로 값을 가져 오려는 경우이 답변이 확장되었습니다. var selectValue = document.getElementById ( 'list'). value; var selectOption = $ ( "# list option [value ="+ selectValue + "]"). text (); /// 좋은 예 nickf.
Kevin Florida

283
@Kevin,이 경우 아래 답변을 사용하십시오. $('#list option:selected').text()
nickf

6
@nickf, 그리고 더 간단한$('#list').val()
Derek 朕 會 功夫

36
@Derek, val ()은 옵션의 텍스트를 제공하지 않으며 값을 제공합니다. 일부 경우 (많은 감히 말합니다) 동일하지 않습니다.
itsmequinn

당신은 항상 사용해야 .trim().text()일부 브라우저는 약간의 공간 이전과 사용자에게 보이지하지만 잘못된 값을 얻기로 이어질 수있는 텍스트 후 때때로 추가 할 수 있기 때문에$("#list option[value='2']").text().trim()
하산 알라 미

1262

값이 2 인 옵션을 얻으려면

$("#list option[value='2']").text();

현재 선택된 옵션을 얻으려면

$("#list option:selected").text();

11
텍스트 대신 값을 얻으려면 다음을 작성해야합니다 .- $ ( "select # list"). val (); 나는 이것이 질문에 대한 실제 대답이 아니라는 것을 알고 있지만 초보자는 Google을 통해이 점을 언급 할 생각입니다.
Knowledge Craving

$ ( "# list option : selected"). text () 및 $ ( "# list option : selected"). attr ( 'value')
fullstacklife를 사용합니다.

선택한 텍스트를 얻으려면 (질문이 구체적으로 요구하지 않더라도)이 방법은 선택한 값이 무엇인지 알 필요가 없기 때문에 우수합니다.
TheJerm

132

이것은 나를 위해 완벽하게 작동했으며 MySQL에서 생성 된 옵션으로 두 가지 다른 값을 보내는 방법을 찾고 있었고 다음은 일반적이며 역동적입니다.

$(this).find("option:selected").text();

의견 중 하나에서 언급했듯이. 이를 통해 옵션 값과 텍스트 값을 모두 얻으려는 모든 선택 상자에서 작동하는 동적 함수를 만들 수있었습니다.

며칠 전 나는 jQuery를 사이트의 1.6에서 1.9로 업데이트 할 때이 코드를 사용했는데 작동이 멈췄을 것입니다 ... 아마도 다른 코드와 충돌했을 것입니다 ... 어쨌든, 해결책은 옵션에서 옵션을 제거하는 것이 었습니다 find () 호출 :

$(this).find(":selected").text();

그게 내 해결책이었습니다 ... jQuery를 업데이트 한 후 문제가있는 경우에만 사용하십시오.


2
아마도 이것이 WebStorm 8에 따르면 더 효율적인 방법 일 것입니다.
dbinott

2
이 답변은 통찰력이 있고 내가 겪고있는 문제에 도움이되었지만 nitpick에 대해서는 올바르게 대답하지 않습니다. 이것은 선택한 텍스트 값을 얻는 방법을 묻는 것이 아니라 선택한 텍스트 값 중 하나만 묻는다는 점에 유의하십시오 value 속성에 따라 다릅니다.
StubbornShowaGuy

109

Paolo가 게시 한 원본 HTML을 기반으로 다음을 생각해 냈습니다.

$("#list").change(function() {
    alert($(this).find("option:selected").text()+' clicked!');
});

Internet Explorer 및 Firefox에서 작동하도록 테스트되었습니다.


11
이에 대한 대안은 $ ( "option : selected", this) .text ()
Doug S

이것은 정적 HTML 및 간단한 자바 스크립트 이벤트뿐만 아니라 복잡한 시나리오를 설명하기 때문에 더 나은 대답입니다.
초에 oasisfleeting

37
$("#list option:selected").each(function() {
   alert($(this).text());
});  

#list요소 에서 여러 선택된 값에 대해 .


37
  1. 페이지에 select 태그가 하나만 있으면 id 'list'내부에서 select를 지정할 수 있습니다.

    jQuery("select option[value=2]").text();
  2. 선택된 텍스트를 얻으려면

    jQuery("select option:selected").text();

24

다음을 시도하십시오 :

$("#list option[value=2]").text();

당신 때문에 원래 조각이 작동하지 않는 이유는 OPTION태그가 당신에 자녀 SELECT이 태그는, id list.


19

이것은 오래된 질문이므로 언젠가 업데이트되지 않았으므로 올바른 방법은 지금 사용하는 것입니다.

$("#action").on('change',function() {
    alert($(this).find("option:selected").text()+' clicked!');
});

이게 도움이 되길 바란다 :-)


이것은 확실히 정확하지 않은 이 선택한 텍스트 값을 얻는 방법을 물어되지 않도록하십시오 노트
웨슬리 스미스

17

선택한 라벨을 가져오고 싶었습니다. 이것은 jQuery 1.5.1에서 나를 위해 일했습니다.

$("#list :selected").text();

17
$(this).children(":selected").text()

불행히도, optgroup귀하의 자녀로 태그가 있고 select선택한 옵션이이 안에 있으면 작동하지 않습니다 optgroup. 사용 $("#list option:selected").text();이 경우에도 작동
MartinM

13
$("#list [value='2']").text();

id 선택기 뒤에 공백을 두십시오.


13

기능을 사용하여 선택한 옵션 텍스트를 얻을 수 있습니다 .text();

다음과 같이 함수를 호출 할 수 있습니다.

jQuery("select option:selected").text();

10

.each와 동적으로 생성 된 선택 요소를 통해 "루핑"동안 (함수 () ...) $("option:selected").text();$(this + " option:selected").text()선택된 옵션의 텍스트를 반환하지 않았습니다 - 대신은 null입니다.

그러나 Peter Mortensen의 솔루션은 다음과 같이 작동했습니다.

$(this).find("option:selected").text();

나는 왜 일반적인 방법이 .each()(아마도 내 자신의 실수) 에서 성공하지 못했는지는 모르지만, 피터, 감사합니다. 나는 그것이 원래의 질문이 아니라는 것을 알고 있지만 "Google을 통해 오는 초보자들에게"라고 언급하고 있습니다.

$('#list option:selected").each()select 요소에서 물건을 가져와야한다는 것을 제외하고 는 시작 했을 것입니다.


8

사용하다:

function selected_state(){
    jQuery("#list option").each(function(){
        if(jQuery(this).val() == "2"){
            jQuery(this).attr("selected","selected");
            return false;
        }
    });
}

jQuery(document).ready(function(){
    selected_state();
});

5

ID 대신 내부 필드 이름으로 val을 찾고 있었고 Google 에서이 게시물로 도움이되었지만 필요한 솔루션을 찾지 못했지만 솔루션을 얻었으며 여기에 있습니다.

따라서 누군가 SharePoint 목록에 긴 ID를 사용하는 대신 필드 내부 이름으로 선택된 값을 찾는 데 도움이 될 수 있습니다.

var e = $('select[title="IntenalFieldName"] option:selected').text(); 

고용체. 여기 비밀스러운 곳에있어 죄송합니다. 이 솔루션을 제공 할 더 눈에 띄는 장소를 찾고 싶을 수도 있습니다. 자신의 질문을하고 대답 할 수 있을까요?
Andrew Kozak

4

동적으로 캐스팅 된 객체를 처리 할 때이 답변이 필요했으며 다른 방법은 작동하지 않는 것 같습니다.

element.options[element.selectedIndex].text

물론 이것은 HTML을 nodeValue, childNodes 등으로 파싱하는 대신 DOM 객체를 사용합니다 .




2

나는 오른쪽에 선택된 것을 표시하는 다중 선택을위한 동적 버전을 원했습니다 ( $(this).find앞서 읽었고 보았던 것) :

<script type="text/javascript">
    $(document).ready(function(){
        $("select[showChoices]").each(function(){
            $(this).after("<span id='spn"+$(this).attr('id')+"' style='border:1px solid black;width:100px;float:left;white-space:nowrap;'>&nbsp;</span>");
            doShowSelected($(this).attr('id'));//shows initial selections
        }).change(function(){
            doShowSelected($(this).attr('id'));//as user makes new selections
        });
    });
    function doShowSelected(inId){
        var aryVals=$("#"+inId).val();
        var selText="";
        for(var i=0; i<aryVals.length; i++){
            var o="#"+inId+" option[value='"+aryVals[i]+"']";
            selText+=$(o).text()+"<br>";
        }
        $("#spn"+inId).html(selText);
    }
</script>
<select style="float:left;" multiple="true" id="mySelect" name="mySelect" showChoices="true">
    <option selected="selected" value=1>opt 1</option>
    <option selected="selected" value=2>opt 2</option>
    <option value=3>opt 3</option>
    <option value=4>opt 4</option>
</select>

2

다음 방법 중 하나를 얻을 수 있습니다

$("#list").find('option').filter('[value=2]').text()

$("#list").find('option[value=2]').text()

$("#list").children('option[value=2]').text()

$("#list option[value='2']").text()

$(function(){    
    
    console.log($("#list").find('option').filter('[value=2]').text());
    console.log($("#list").find('option[value=2]').text());
    console.log($("#list").children('option[value=2]').text());
    console.log($("#list option[value='2']").text());
    
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<select id='list'>
    <option value='1'>Option A</option>
    <option value='2'>Option B</option>
    <option value='3'>Option C</option>
</select>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.