好吧,说我有这个:
<select id='list'>
<option value='1'>Option A</option>
<option value='2'>Option B</option>
<option value='3'>Option C</option>
</select>
当我的值为'2'时,如果我想获得“选项B”,选择器会是什么样的?
请注意,这不是询问如何获取选中的文本值,而是询问其中的任何一个,无论是否选中,具体取决于value属性。我试过了:
$("#list[value='2']").text();
但它没有用。
答案 0 :(得分:1254)
如果您想获得值为2的选项,请使用
$("#list option[value='2']").text();
如果您想获得当前选择的任何选项,请使用
$("#list option:selected").text();
答案 1 :(得分:1092)
它正在寻找标识为list
且元素value
等于2的元素。您想要的是option
的{{1}}子元素。
list
答案 2 :(得分:124)
这对我来说非常合适,我一直在寻找一种方法来发送两个不同的值与MySQL生成的选项,以下是通用和动态的:
$(this).find("option:selected").text();
正如其中一条评论所述。有了这个,我就能够创建一个动态函数,它可以处理我想要获取值,选项值和文本的所有选择框。
前几天我注意到,当我使用这段代码从站点的1.6到1.9更新jQuery时,这停止工作......可能与另一段代码发生冲突......无论如何,解决方案是删除find()调用中的选项:
$(this).find(":selected").text();
这是我的解决方案......只有在更新jQuery后遇到任何问题时才使用它。
答案 3 :(得分:107)
根据Paolo发布的原始HTML,我想出了以下内容。
$("#list").change(function() {
alert($(this).find("option:selected").text()+' clicked!');
});
它已经过测试,适用于Internet Explorer和Firefox。
答案 4 :(得分:36)
如果页面上只有一个选择标记,则可以在id'list'中指定select
jQuery("select option[value=2]").text();
获取所选文字
jQuery("select option:selected").text();
答案 5 :(得分:36)
$("#list option:selected").each(function() {
alert($(this).text());
});
表示#list
元素中的多个选定值。
答案 6 :(得分:23)
尝试以下方法:
$("#list option[value=2]").text();
原始代码段不起作用的原因是因为OPTION
代码是SELECT
代码的子代,其id
list
。
答案 7 :(得分:19)
这是一个旧问题,在一段时间内没有更新,现在正确的方法是使用
$("#action").on('change',function() {
alert($(this).find("option:selected").text()+' clicked!');
});
我希望这会有所帮助: - )
答案 8 :(得分:17)
$(this).children(":selected").text()
答案 9 :(得分:16)
我想获得所选标签。这在jQuery 1.5.1中对我有用。
$("#list :selected").text();
答案 10 :(得分:13)
$("#list [value='2']").text();
在id选择器后留一个空格。
答案 11 :(得分:13)
您可以使用函数.text();
你可以这样调用这个函数:
jQuery("select option:selected").text();
答案 12 :(得分:10)
通过动态创建的带有.each(function()...)的select元素“循环”:$("option:selected").text();
和$(this + " option:selected").text()
没有返回选定的选项文本 - 而是返回null。 / p>
但Peter Mortensen的解决方案有效:
$(this).find("option:selected").text();
我不知道为什么通常的方法在.each()
(可能是我自己的错误)中没有成功,但谢谢你,彼得。我知道这不是原来的问题,但我提到它“是为了通过谷歌来做新手。”
我会从$('#list option:selected").each()
开始,除了我还需要从select元素中获取内容。
答案 13 :(得分:8)
使用:
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();
});
答案 14 :(得分:5)
我正在寻找通过内部字段名称而不是ID来获取val,并且从谷歌来到这篇文章,这有帮助,但没有找到我需要的解决方案,但我得到了解决方案,这里是:
因此,这可能有助于某人使用字段内部名称查找所选值,而不是使用SharePoint列表的长ID:
var e = $('select[title="IntenalFieldName"] option:selected').text();
答案 15 :(得分:4)
我在处理动态转换对象时需要这个答案,而其他方法似乎不起作用:
element.options[element.selectedIndex].text
这当然使用DOM对象,而不是使用nodeValue,childNodes等解析其HTML。
答案 16 :(得分:4)
提示:如果您的值是动态的,则可以使用以下代码:
$("#list option[value='"+aDynamicValue+"']").text();
或(更好的风格)
$("#list option").filter(function() {
return this.value === aDynamicValue;
}).text();
正如jQuery get specific option tag text and placing dynamic variable to the value
中所述答案 17 :(得分:3)
作为替代解决方案,您还可以使用context part of jQuery selector在下拉列表中查找<option>
value="2"
个元素:
$("option[value='2']", "#list").text();
答案 18 :(得分:1)
您可以通过以下方式之一
$("#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>
答案 19 :(得分:0)
如果要获取选定的值,则:
<section id="global">
<div class="anim">
<div id="top" class="mask">
<div class="plane"></div>
</div>
<div id="middle-top" class="mask">
<div class="plane"></div>
</div>
<div id="middle" class="mask">
<div class="plane"></div>
</div>
<div id="bottom" class="mask">
<div class="plane"></div>
</div>
</div>
<p id="loading-texte"><i>LOADING...</i></p>
</section>
答案 20 :(得分:0)
尝试
[...list.options].find(o=> o.value=='2').text
let text = [...list.options].find(o=> o.value=='2').text;
console.log(text);
<select id='list'>
<option value='1'>Option A</option>
<option value='2'>Option B</option>
<option value='3'>Option C</option>
</select>
答案 21 :(得分:0)
尝试一下:
jQuery("#list option[value='2']").text()