jQuery 获取特定的选项标签文本

好吧,说我有这个:

<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。您想要的是listoption子元素。

$("#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 上使用。

  1. 如果页面上只有一个选择标签,则可以在 ID“列表” 中指定选择

    jQuery("select option[value=2]").text();
  2. 获取所选文本

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