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

好吧,说我有这个。

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

如果我想得到"选项B",当我有'2'的值时,选择器会是什么样子?

请注意,这不是在问如何获得_选择_的文本值,而只是问其中的任何一个,无论是否选择,都取决于值属性。我试过了。

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

但它没有起作用。

对该问题的评论 (1)

如果你想得到一个值为2的选项,使用

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

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

评论(3)
解决办法

它正在寻找一个id为list的元素,该元素的属性value等于2。

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

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

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

就像在一个评论中提到的那样。 有了这个功能,我就可以创建一个动态函数,与我所有的选择框一起工作,我想得到两个值,选项值和文本。

几天前,我注意到,当更新jQuery从1.6到1.9的网站,我使用这段代码,这停止工作... ... 可能是和其他代码冲突了...... 总之,解决方法是把find()调用中的选项去掉。

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

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

评论(2)

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

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

经测试,它可以在Internet Explorer和Firefox上运行。

评论(2)
  1. 如果页面上只有一个select标签,那么你可以在id里面指定select'list&#39。

jQuery("select option[value=2]").text()。

  1. 获取选中的文本

jQuery("选择选项:选定").text()。

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

#list元素中的多个选择值。

评论(0)

试试以下方法。

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

你原来的片段不能工作的原因是,你的OPTION标签是你的SELECT标签的子标签,它有id``list

评论(1)

这是一个老问题,已经有一段时间没有更新了,现在正确的方法是使用

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

我希望这能帮助你:-)

评论(1)
$(this).children(":selected").text()
评论(2)

我想得到选定的标签。 在jQuery 1.5.1中,这个方法对我有用。

$("#list :selected").text();
评论(0)

你可以通过使用函数.text();来获取所选的选项文本。

你可以这样调用该函数。

jQuery("select option:selected").text();
评论(0)
$("#list [value='2']").text();

在id选择器后面留一个空格。

评论(0)

当"循环" 用.each(function()...)通过动态创建的选择元素。 $("option:selected").text();$(this+" option:selected").text()并没有返回选中的选项文本--相反,它是空的。

但Peter Mortensen'的解决方案成功了。

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

我不知道为什么通常的方法在.each()中不成功(可能是我自己的错误),但是谢谢你,Peter。 我知道这不是最初的问题,但我提到它"为通过Google.&quot来的新手。

我本来会从$(&#39;#list option:selected").each()开始,只是我需要从select元素中也抓取东西。

评论(0)

使用。

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();
});
评论(0)

我一直在寻找通过内部字段名而不是ID来获取val,并从谷歌到这个帖子的帮助,但没有找到我需要的解决方案,但我得到的解决方案,这里是。

所以,这可能会帮助某人在SharePoint列表中用内部字段名而不是用长ID来寻找选择值。

var e = $('select[title="IntenalFieldName"] option:selected').text(); 
评论(1)

我需要这个答案,因为我正在处理一个动态投射的对象,而这里的其他方法似乎都不起作用。

element.options[element.selectedIndex].text

当然,这使用的是DOM对象,而不是用nodeValue、childNodes等解析其HTML。

1:

评论(0)

一个小窍门:如果你的值是动态的,你可以使用以下代码 如果你的值是动态的,你可以使用下面的代码。

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

或者(更好的风格)

$("#list option").filter(function() {
     return this.value === aDynamicValue;
}).text();

如https://stackoverflow.com/questions/12135825/jquery-get-specific-option-tag-text-and-placing-dynamic-variable-to-the-value/12135848 所述。

评论(0)

作为一个替代方案,你也可以使用jQuery选择器的[context部分][1]在下拉列表中找到带有value="2"<option>元素。

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

[1]: http://api.jquery.com/jQuery/#jQuery1

评论(0)

您可以通过以下方式获得

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

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

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

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

<!--开始片段。 js hide: false console: true babel.false --> -- begin snippet: js hide: false console: true false -->

$(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 A
    Option B
    Option C
评论(0)

我想要一个动态版本的select multiple,可以在右边显示选择的内容(希望我'读下去,早点看到$(this).find...)。 )。


<script type="text/javascript">
    $(document).ready(function(){
        $("select[showChoices]").each(function(){
            $(this).after("<span id='spn"+$(this).attr('id')+"' style='border:1px solid black;width:100px;float:left;white-space:nowrap;'> </span>");
            doShowSelected($(this).attr('id'));//shows initial selections
        }).change(function(){
            doShowSelected($(this).attr('id'));//as user makes new selections
        });
    });
    function doShowSelected(inId){
        var aryVals=$("#"+inId).val();
        var selText="";
        for(var i=0; i
    opt 1
    opt 2
    opt 3
    opt 4
评论(0)