javascript - jquery select text in div




jQuery получить конкретный текст тега опции (14)

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

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

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


  1. Если на странице есть только один тег select, вы можете указать выбор внутри id 'list'

    jQuery("select option[value=2]").text();
    
  2. Чтобы получить выделенный текст

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

В качестве альтернативного решения вы также можете использовать контекстную часть селектора jQuery для поиска элементов <option> со value="2" в раскрывающемся списке:

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

Вы можете использовать один из следующих способов:

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


Вы можете получить выбранный текст с помощью функции .text();

вы можете вызвать функцию следующим образом:

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

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

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

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

element.options[element.selectedIndex].text

Это, конечно, использует объект DOM вместо разбора его HTML с nodeValue, childNodes и т. Д.


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

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

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

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

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


Совет: вы можете использовать код ниже, если ваше значение динамическое:

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

Или (лучший стиль)

$("#list option").filter(function() {
     return this.value === aDynamicValue;
}).text();

Как упоминалось в jQuery, можно получить текст тега опционального варианта и поместить динамическую переменную в значение


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

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

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

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

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

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


Я искал получение val по имени внутреннего поля вместо ID и пришел из google в этот пост, который помог, но не нашел нужное мне решение, но я получил решение, и вот оно:

Таким образом, это может помочь кому-то искать выбранное значение с внутренним именем поля вместо использования длинного идентификатора для списков SharePoint:

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

Я хотел получить выбранный ярлык. Это работало для меня в jQuery 1.5.1.

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

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

для нескольких выбранных значений в элементе #list .


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






jquery-selectors