Хорошо, допустим, у меня есть это:
<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();
Но это не работает.
Если вы хотите получить опцию со значением 2, используйте
$("#list option[value='2']").text();
Если вы'хотите получить опцию, которая выбрана в данный момент, используйте
$("#list option:selected").text();
Это работало для меня, я ищу способ, чтобы отправить два разных значения параметров, генерируемых MySQL, и следующие является универсальным и динамичным:
$(этот).найти (фильм"вариант:выбран и").текст();
Как говорилось в одном из комментариев. С этим мне удалось создать динамическую функцию, которая работает со всеми моими коробками отбора, что я хочу получить оба значения, значение параметра и текст.
Несколько дней назад я заметил, что при обновлении jQuery с 1,6 до 1,9 сайта я использовал этот код, это перестать работать... скорее всего конфликт с другой частью кода... в общем, было принято решение удалить параметр в Найти() вызов:
$(this).find(":selected").text();
Это было мое решение... использовать его только если у вас есть какие-либо проблемы после обновления на jQuery.
На основе исходного кода HTML написал Паоло, я придумал следующее.
$("#list").change(function() {
alert($(this).find("option:selected").text()+' clicked!');
});
Он был протестирован для работы в Internet Explorer и Firefox.
jQuery (в"и выберите опцию[значение=2] и").текст();
jQuery (в"и выберите опцию:избранные и").текст();
Попробуйте следующее:
$("#list option[value=2]").text();
Причина, по которой ваш оригинальный сниппет не работал, заключается в том, что ваши теги OPTION
являются дочерними для тега SELECT
, который имеет id
list
.
Это старый вопрос, который не был обновлен в некоторое время, чтобы сделать это правильно теперь будет использовать
$("#action").on('change',function() {
alert($(this).find("option:selected").text()+' clicked!');
});
Я надеюсь, что это помогает :-)
$(this).children(":selected").text()
Вы можете получить выбранный вариант текста с помощью функции .текст();
вы можете вызвать функцию такой :
jQuery("select option:selected").text();
При том, что "зацикливание" через динамически создаваемые выберите элементы .каждый(функция()...): $("и вариант:выбран и").текст();
и `$(это + то " вариант:выбран и").текст () не возвращает выбранный вариант текста - вместо этого было нуль.
Но Питер Мортенсен'ный раствор работал:
$(this).find("option:selected").text();
Я не знаю, почему обычным способом не удастся в .каждый()
(вероятно, моя собственная ошибка), но спасибо, Питер. Я знаю, что это'т исходный вопрос, но я называя ее "для новичков идет через Google.&и"
Я бы начал с `$(' Вариант#список:избранные и").каждый (), за исключением мне нужно, чтобы захватить вещи из выберите элемент.
Использование:
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();
});
Я искал для получения Валь по имени внутреннего поля вместо ID и пришел от Google на этот пост, который поможет, но не найти решение мне нужно, но я нашел решение и вот оно:
Так что это может помочь кому-то, глядя на выбранное значение с внутреннее имя поля, а не с помощью длинных ID для списков SharePoint:
var e = $('select[title="IntenalFieldName"] option:selected').text();
Мне нужен этот ответ, как я имел дело с динамически преобразовать объект, и другие методы здесь не похоже на работу:
element.options[element.selectedIndex].text
Это конечно использует дом - объект, а не парсинг HTML с его свойства устанавливается равным, childNodes, и т. д.
Подсказка: вы можете использовать ниже код, если значение является динамическим:
$("#list option[value='"+aDynamicValue+"']").text();
Или (лучше стиле)
$("#list option").filter(function() {
return this.value === aDynamicValue;
}).text();
Как уже упоминалось в https://stackoverflow.com/questions/12135825/jquery-get-specific-option-tag-text-and-placing-dynamic-variable-to-the-value/12135848
В качестве альтернативного решения, можно также использовать контекстную часть jQuery селектор, чтобы найти в <параметр> У
элемент(ы) `значение="и 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>
в
Я хотел динамичную версию для выбрать несколько, Что бы показать, что выбран справа (жаль, что я'd не читайте дальше и увидел `$(этот).найти... раньше):
<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;'> </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>