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

但它没有用。


1140
2017-10-13 04:06


起源


在这段时间内,使用: $("#list option").filter(function () { return $(this).html() == "stuff"; }).val(); - rook


答案:


它正在寻找一个带有id的元素 list 哪个有财产 value 等于2.你想要的是什么 option 的孩子 list

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

1052
2017-10-13 04:08



谢谢你的昵称。如果要动态获取值,可以扩展此答案:var selectValue = document.getElementById('list')。value; var selectOption = $(“#list option [value =”+ selectValue +“]”)。text(); ///好示例nickf。 - Kevin Florida
@Kevin,在这种情况下,你可能想要使用下面这个答案。 $('#list option:selected').text() - nickf
@nickf,更简单, $('#list').val() - Derek 朕會功夫
@Derek,val()不会给出选项的文本,它会给出它的值,这在某些情况下(很多我敢说)是不一样的。 - itsmequinn
谢谢@nickf!你是对的!它的工作!!! - Henock Bongi


如果您想获得值为2的选项,请使用

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

如果您想获得当前选择的任何选项,请使用

$("#list option:selected").text();

1239
2018-05-15 15:52



要获取值而不是文本,您需要编写: - $(“select#list”)。val();我知道这不是所提出问题的实际答案,但仍然想到通过Google提及新手的这一点。 - Knowledge Craving
我使用$(“#list option:selected”)。text()和$(“#list option:selected”)。attr('value') - fullstacklife
为了获得所选文本(即使问题没有具体要求),这种方法是优越的,因为不必知道所选择的值是什么。 - theJerm


这对我来说非常合适,我正在寻找一种方法来发送两个不同的值与MySQL生成的选项,以下是通用和动态的:

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

正如其中一条评论所述。有了这个,我就能够创建一个动态函数,它可以与我想要获取值,选项值和文本的所有选择框一起使用。

几天前我注意到当我使用这段代码从站点的1.6到1.9更新jQuery时,这个停止工作......可能与另一段代码发生冲突......无论如何,解决方案是从中移除选项find()调用:

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

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


116
2017-07-29 18:55



根据WebStorm 8,据说这是更有效的方法。 - dbinott
虽然这个答案很有见地,并帮助我解决了我遇到的问题,但是对于挑剔,它没有正确回答这个问题: 请注意,这不是询问如何获取所选文本值,而是询问它们中的任何一个,无论是否选中,具体取决于value属性。 - StubbornShowaGuy
这个解决方案对我来说效果最好,谢谢! - Hank


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

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

它已经过测试,适用于Internet Explorer和Firefox。


107
2018-05-02 12:25



另一种方法是:$(“option:selected”,this).text() - Doug S
这是一个更好的答案,因为它解决了复杂的场景,而不仅仅是静态HTML和简单的javascript事件。 - oasisfleeting


$("#list option:selected").each(function() {
   alert($(this).text());
});  

对于多个选定的值 #list 元件。


36
2018-06-04 14:30





  1. 如果页面上只有一个选择标记,那么您可以在id'list'中指定select

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

    jQuery("select option:selected").text();
    

36
2018-06-13 03:45





请尝试以下方法:

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

您的原始代码段不起作用的原因是因为您的原因 OPTION 标签是你的孩子 SELECT 标签,其中有 id  list


23
2017-10-13 04:08



$('#list option [value =“2”]')。text(); //正确的选择器 - Evgeni Nabokov