好吧,假设我有这个

<select id='list'>
    <option value='1'>Option A</option>
    <option value='2'>Option B</option>
    <option value='3'>Option C</option>
</select>

如果我想在值为“2”时获得“Option B”,选择器会是什么样子?

请注意,这并不是询问如何获取所选文本值,而是询问它们中的任何一个,无论是否被选中,这取决于value属性。我试着:

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

但这并不奏效。


当前回答

这对我来说是完美的,我正在寻找一种方法来发送MySQL生成的选项的两个不同的值,下面是通用的和动态的:

(美元);(“选择:选择”)。text ();

正如其中一条评论中提到的。有了这个,我就可以创建一个动态函数,它适用于所有我想要获得两个值的选择框,选项值和文本。

几天前我注意到,当把jQuery从1.6更新到1.9的站点时,我使用了这个代码,这个停止工作…可能是与另一段代码冲突……不管怎样,解决方案是从find()调用中删除option:

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

这就是我的解决方案……只有在更新jQuery后遇到任何问题时才使用它。

其他回答

它在寻找一个id为list的元素它的属性值为2。 你想要的是列表的option子元素:

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

当使用.each(function()…)“循环”动态创建的选择元素时:$("option:selected").text();$(this + " option:selected").text()没有返回所选的选项文本——而是为空。

但彼得·莫滕森的解决方案奏效了:

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

我不知道为什么通常的方法在.each()中没有成功(可能是我自己的错误),但是谢谢你,彼得。我知道这不是最初的问题,但我提到它是“针对谷歌的新手”。

我将从$('#list选项:selected").each()开始,除非我需要从选择元素中抓取东西。

基于Paolo发布的原始HTML,我想出了以下内容。

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

经过测试,它可以在ie和Firefox浏览器上运行。

试试下面的方法:

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

最初的代码片段不能正常工作的原因是OPTION标记是SELECT标记的子标记,SELECT标记具有id列表。

如果页面上只有一个选择标签那么你可以在id 'list'中指定选择 jQuery(“选择选项[value = 2]”)。text (); 获取选定文本 jQuery(“选择选项:选择”)。text ();