Вопрос: jQuery получить конкретный текст тега опции


Хорошо, скажу, что у меня это:

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

Как бы выглядел селектор, если бы я хотел получить «вариант B», когда у меня есть значение «2»?

Обратите внимание, что это не спрашивает, как получить выбранный текстовое значение, но только любой из них, независимо от того, выбран ли он или нет, в зависимости от атрибута value. Я пытался:

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

Но это не работает.


1130


источник


Ответы:


Он ищет элемент с идентификатором listкоторый обладает свойством valueравный 2. То, что вы хотите, это optionребенка list,

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

1046



Если вы хотите получить опцию со значением 2, используйте

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

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

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

1239



Это отлично сработало для меня, я искал способ отправить два разных значения с параметрами, генерируемыми MySQL, а следующее является общим и динамическим:

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

Как упоминалось в одном из комментариев. С этим я смог создать динамическую функцию, которая работает со всеми моими ячейками выбора, которые я хочу получить как значениями, так и значением параметра и текстом.

Несколько дней назад я заметил, что при обновлении jQuery от 1,6 до 1,9 сайта я использовал этот код, это перестало работать ... возможно, это был конфликт с другим фрагментом кода ... в любом случае решение заключалось в удалении опции из find ():

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

Это было мое решение ... используйте его, только если у вас возникли проблемы после обновления jQuery.


115



Основываясь на оригинальном HTML, опубликованном Паоло, я придумал следующее.

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

Он был протестирован для работы в Internet Explorer и Firefox.


107



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

for multiple selected value in the #list element.


36



  1. If there is only one select tag in on the page then you can specify select inside of id 'list'

    jQuery("select option[value=2]").text();
    
  2. To get selected text

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

36



Try the following:

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

The reason why your original snippet wasn't working is because your OPTION tags are children to your SELECT tag, which has the id list.


23



This is an old Question which has not been updated in some time the correct way to do this now would be to use

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

I hope this helps :-)


19



I wanted to get the selected label. This worked for me in jQuery 1.5.1.

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

16



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

16



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

leave a space after the id selector.


13



You can get selected option text by using function .text();

you can call the function like this :

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

12