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

2400

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

5
  • 13
    Только мои два цента: раскрывающийся список «ASP» не является чем-то особенным; это просто старый добрый HTML. :-)ankush981 4 июн.
  • Можно сослаться на эту статью: javascriptstutorial.com/blog/…Dilip Kumar Yadav 18 окт.
  • для ванильного способа javascript см. stackoverflow.com/a/5947/32453rogerdpack 18 янв.
  • Просто $ (this) .prop ('selected', true); заменил .att на .prop, он работал во всех браузерахShahid Hussain Abbasi 12 янв.
  • $ ("# yourdropdownid option: selected"). text (); Ali NajafZadeh 3 августа в 16:57
3895
$("#yourdropdownid option:selected").text();
3
  • 213
    Я думаю, это должно быть, $("#yourdropdownid").children("option").filter(":selected").text()поскольку is () возвращает логическое значение, соответствует ли объект селектору или нет. MHollis 18 мая '12 в 14: 042012-05-18 14:04
  • 45
    Второй комментарий о том, что is () возвращает логическое значение; в качестве альтернативы используйте следующее небольшое изменение: $ ('# yourdropdownid'). children ("option: selected"). text (); scubbo 12 июн.
  • 101
    $('select').children(':selected')это самый быстрый способ: jsperf.com/get-selected-option-textSimon 24 апр '13 в 13:51
276

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

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

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

$("[id*='MyDropDownId'] :selected")
0
226

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

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

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

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

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

0
111

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

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

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

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

73

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

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

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

$(document).on("change", "#dropdownid", function() {
    alert($(this).find("option:selected").text());
});
66
$("option:selected", $("#TipoRecorde")).text()
0
55

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

1
  • 38
    Не совсем ответ на вопрос, но мне пригодился. Вопросу нужен выделенный текст. Peter 28 нояб.
54

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

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

Версия jQuery : 1.9.1

0
43

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

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

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

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

Различные способы

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

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

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

4. $("#myselect").find(":selected").text();
34

Использовать этот

const select = document.getElementById("yourSelectId");

const selectedIndex = select.selectedIndex;
const selectedValue = select.value;
const selectedText = select.options[selectedIndex].text;   

Затем вы получаете выбранное значение и текст внутри selectedValueи selectedText.

0
31
$("#dropdownID").change(function(){
  alert($('option:selected', $(this)).text());
});
0
29
var someName = "Test";

$("#<%= ddltest.ClientID %>").each(function () {
    $('option', this).each(function () {
        if ($(this).text().toLowerCase() == someName) {
            $(this).attr('selected', 'selected')
        };
    });
});

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

0
19

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

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

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

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

Селектор: selected работает для элементов <option>. Это не работает для флажков или радиовходов; использовать :checkedдля них.

.text () Согласно документации здесь .

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

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

Обратитесь к документации для более подробного объяснения.

0
15
$("select[id=yourDropdownid] option:selected").text()

Это отлично работает

13

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

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

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

$("#dropDownId option:selected").text();
12
$('#id').find('option:selected').text();
0
11

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

$("#yourdropdownid").change(function() {
    console.log($("option:selected", this).text()); //text
    console.log($(this).val()); //value
})
11

Пытаться:

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

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

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

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

10
var e = document.getElementById("dropDownId");
var div = e.options[e.selectedIndex].text;
0
10

Просто попробуйте следующий код.

var text= $('#yourslectbox').find(":selected").text();

он возвращает текст выбранной опции.

9

Использовать:

('#yourdropdownid').find(':selected').text();
8

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

$.trim($('#dropdownId option:selected').html())
0
7

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

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

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

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()
7

$(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

0
5

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

$("#yourdropdownid").children("option").filter(":selected").text();
4

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

x=[];
$("#list_id").children(':selected').each(function(){x.push($(this).text());})
3
$("#dropdown").find(":selected").text();


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

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

$("#dropdown").children(":selected").text();
0