Получить выделенный текст из раскрывающегося списка (выберите поле) с помощью jQuery

Как получить выделенный текст (не выбранное значение) из раскрывающегося списка в jQuery?

вопрос задан 29.10.2009
haddar
10180 репутация

29 ответов


  • 3368 рейтинг
    $("#yourdropdownid option:selected").text();
    
    ответ дан rahul, с репутацией 146590, 29.10.2009
  • 237 рейтинг

    Попробуй это:

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

    Для раскрывающегося списка ASP.NET вы можете использовать следующий селектор:

     $("[id*='MyDropDownId'] :selected")
     
    ответ дан kgiannakakis, с репутацией 86250, 29.10.2009
  • 187 рейтинг

    Ответы, размещенные здесь, например,

     $('#yourdropdownid option:selected').text();
     

    не работал для меня, но это делало:

     $('#yourdropdownid').find('option:selected').text();
     

    Возможно, это более старая версия jQuery.

    ответ дан JYX, с репутацией 2038, 19.03.2012
  • 93 рейтинг

    Если у вас уже есть раскрывающийся список, доступный в переменной, это то, что работает для меня:

     $("option:selected", myVar).text()
     

    Другие ответы на этот вопрос помогли мне, но, в конечном счете, форум jQuery thread $ (this + "option: selected"). Выбранная опция attr ("rel") не работает в IE .

    Обновление: исправлена ​​ссылка выше

    ответ дан Kirk Liemohn, с репутацией 5024, 4.02.2012
  • 60 рейтинг
    $("option:selected", $("#TipoRecorde")).text()
    
    ответ дан Rafael, с репутацией 601, 16.08.2011
  • 54 рейтинг

    $("#DropDownID").val() даст выбранное значение индекса.

    ответ дан Neeraj, с репутацией 661, 14.11.2011
  • 50 рейтинг

    Это работает для меня:

     $('#yourdropdownid').find('option:selected').text();
     

    Версия jQuery : 1.9.1

    ответ дан Binita Bharati, с репутацией 1389, 25.09.2013
  • 48 рейтинг

    Это работает для меня

     $("#dropdownid").change(function() {
        alert($(this).find("option:selected").text());
    });
     

    Если элемент создается динамически

     $(document).on("change", "#dropdownid", function() {
        alert($(this).find("option:selected").text());
    });
     
    ответ дан Prabhagaran, с репутацией 2071, 14.08.2015
  • 40 рейтинг

    Для текста выбранного элемента используйте:

     $('select[name="thegivenname"] option:selected').text();
     

    Для значения выбранного элемента используйте:

     $('select[name="thegivenname"] option:selected').val();
     
    ответ дан Kamrul, с репутацией 4253, 24.01.2013
  • 31 рейтинг

    Различные пути

     1. $("#myselect option:selected").text();
    
    2. $("#myselect :selected").text();
    
    3. $("#myselect").children(":selected").text();
    
    4. $("#myselect").find(":selected").text();
     
    ответ дан Salim, с репутацией 10399, 3.08.2014
  • 27 рейтинг
    $("#dropdownID").change(function(){
      alert($('option:selected', $(this)).text());
    });
    
    ответ дан N J, с репутацией 2061, 1.02.2014
  • 25 рейтинг
     var someName = "Test";
    
    $("#<%= ddltest.ClientID %>").each(function () {
        $('option', this).each(function () {
            if ($(this).text().toLowerCase() == someName) {
                $(this).attr('selected', 'selected')
            };
        });
    });
     

    Это поможет вам в правильном направлении. Выше код полностью протестирован, если вам нужна дополнительная помощь, сообщите мне.

    ответ дан Zarni, с репутацией 267, 7.10.2010
  • 17 рейтинг

    Пожалуйста, используйте это

     var listbox = document.getElementById("yourdropdownid");
    var selIndex = listbox.selectedIndex;
    var selValue = listbox.options[selIndex].value;
    var selText = listbox.options[selIndex].text;   
     

    Затем, пожалуйста, сообщите «selValue» и «selText». Вы получаете выделенное выпадающее значение и текст

    ответ дан Mohammed Shaheen MK, с репутацией 687, 14.05.2015
  • 17 рейтинг

    Для тех, кто использует списки SharePoint и не хочет использовать длинный сгенерированный идентификатор, это будет работать:

     var e = $('select[title="IntenalFieldName"] option:selected').text();
     
    ответ дан FAA, с репутацией 389, 5.11.2013
  • 15 рейтинг
      $("#selectID option:selected").text();
     

    Вместо #selectID вы можете использовать любой селектор jQuery, например .selectClass используя класс.

    Как упоминалось в документации здесь .

    Выбранный селектор работает для элементов <option>. Он не работает для флажков или радиовходов; используйте :checked для них.

    .text () В соответствии с документацией здесь .

    Получите комбинированное текстовое содержимое каждого элемента в наборе согласованных элементов, включая их потомков.

    Таким образом, вы можете взять текст из любого элемента HTML, используя метод .text() .

    См. Документацию для более глубокого объяснения.

    ответ дан Nikhil Agrawal, с репутацией 16262, 30.01.2014
  • 14 рейтинг
     $("select[id=yourDropdownid] option:selected").text()
     

    Это прекрасно работает

    ответ дан Thangamani Palanisamy, с репутацией 3707, 23.04.2013
  • 11 рейтинг
    $('#id').find('option:selected').text();
    
    ответ дан Nikul, с репутацией 777, 11.04.2015
  • 11 рейтинг

    Для получения выбранного значения используйте

     $('#dropDownId').val();
     

    и для получения выбранного текста элемента используйте эту строку:

     $("#dropDownId option:selected").text();
     
    ответ дан Mojtaba, с репутацией 339, 23.01.2016
  • 10 рейтинг

    Выберите «Текст» и выбранное значение в раскрывающемся меню / выберите событие изменения в jQuery

     $("#yourdropdownid").change(function() {
        console.log($("option:selected", this).text()); //text
        console.log($(this).val()); //value
    })
     
    ответ дан Sandeep Shekhawat, с репутацией 382, 19.11.2015
  • 9 рейтинг

    Использование:

     ('#yourdropdownid').find(':selected').text();
     
    ответ дан kishore, с репутацией 765, 31.07.2014
  • 7 рейтинг
    var e = document.getElementById("dropDownId");
    var div = e.options[e.selectedIndex].text;
    
    ответ дан Kalaivani M, с репутацией 829, 4.01.2017
  • 7 рейтинг

    В браке

     <a class="uibutton confirm addClient" href="javascript:void(0);">ADD Client</a>
    <input type="text" placeholder="Enter client name" style="margin: 5px;float: right" class="clientsearch large" />
    <select class="mychzn-select clientList">
      <option value="">Select Client name....</option>
      <option value="1">abc</option>
    </select>
    
    
     /*jQuery*/
     $(this).siblings('select').children(':selected').text()
     
    ответ дан vineet, с репутацией 5735, 5.12.2014
  • 7 рейтинг

    для меня работало следующее:

     $.trim($('#dropdownId option:selected').html())
     
    ответ дан Mohammad Dayyan, с репутацией 9355, 17.09.2015
  • 6 рейтинг

    Эта работа для меня:

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

    Я использую jQuery 1.10.2

    ответ дан Rhaymand Tatlonghari, с репутацией 141, 9.07.2015
  • 5 рейтинг

    Пытаться:

     $var = jQuery("#dropdownid option:selected").val();
       alert ($var);
     

    Или, чтобы получить текст опции, используйте text() :

     $var = jQuery("#dropdownid option:selected").text();
       alert ($var);
     

    Больше информации:

    ответ дан Vishal Thakur, с репутацией 529, 9.03.2017
  • 5 рейтинг

     $(function () {
      alert('.val() = ' + $('#selectnumber').val() + '  AND  html() = ' + $('#selectnumber option:selected').html() + '  AND .text() = ' + $('#selectnumber option:selected').text());
    }); 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head runat="server">
        <title></title>
    
      </head>
      <body>
        <form id="form1" runat="server">
          <div>
            <select id="selectnumber">
              <option value="1">one</option>
              <option value="2">two</option>
              <option value="3">three</option>
              <option value="4">four</option>
            </select>
    
          </div>
        </form>
      </body>
    </html> 

    Нажмите, чтобы открыть экран OutPut

    ответ дан Bhanu pratap, с репутацией 654, 9.08.2016
  • 3 рейтинг

    Если вы хотите, чтобы результат был списком, используйте:

     x=[];
    $("#list_id").children(':selected').each(function(){x.push($(this).text());})
     
    ответ дан max, с репутацией 3830, 18.01.2017
  • 0 рейтинг
     $("#dropdownid option:selected").text();
     

    если вы используете asp.net и пишите

     <Asp:dropdownlist id="ddl" runat="Server" />
     

    то вы должны использовать

     $('#<%=ddl.Clientid%> option:selected').text();
     
    ответ дан Manish Singh, с репутацией 661, 21.05.2018
  • 0 рейтинг

    Для мультивыбор:

     $("#yourdropdownid :selected").map(function(i, v) { return $.trim($(v).text()); }
     
    ответ дан Curtis Yallop, с репутацией 4014, 15.03.2018