好吧,说我有这个:
<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();
但这是行不通的。
如果您想获得值为 2 的选项,请使用
$("#list option[value='2']").text();
如果要获取当前选择的任何一个选项,请使用
$("#list option:selected").text();
它正在寻找一个 id list
元素,其属性value
等于 2。您想要的是list
的option
子元素。
$("#list option[value='2']").text()
这对我来说非常有效,我正在寻找一种方法来发送两个不同的值,这些值由 MySQL 生成,并且具有通用性和动态性:
$(this).find("option:selected").text();
如评论之一所述。这样我就可以创建一个动态函数,该函数可以与所有我希望同时获得值,选项值和文本的选择框一起使用。
几天前,我注意到,当我使用此代码的站点将 jQuery 从 1.6 更新到 1.9 时,此停止工作... 可能与另一段代码冲突... 无论如何,解决方案是从 find()调用:
$(this).find(":selected").text();
那是我的解决方案... 仅当更新 jQuery 后遇到任何问题时才使用它。
基于 Paolo 发布的原始 HTML,我提出了以下内容。
$("#list").change(function() {
alert($(this).find("option:selected").text()+' clicked!');
});
经过测试,可以在 Internet Explorer 和 Firefox 上使用。
如果页面上只有一个选择标签,则可以在 ID“列表” 中指定选择
jQuery("select option[value=2]").text();
获取所选文本
jQuery("select option:selected").text();
$("#list option:selected").each(function() {
alert($(this).text());
});
#list
元素中的多个选定值。
请尝试以下操作:
$("#list option[value=2]").text();
原始代码段无效的原因是,您的OPTION
标记是SELECT
标记的子代,而SELECT
标记具有id
list
。
这是一个旧的问题,已经有一段时间没有更新了,现在正确的方法是使用
$("#action").on('change',function() {
alert($(this).find("option:selected").text()+' clicked!');
});
我希望这有帮助 :-)
$(this).children(":selected").text()
我想获取选定的标签。这在 jQuery 1.5.1 中对我有用。
$("#list :selected").text();