我需要检查<select>是否有一个文本等于特定值的选项。

例如,如果有一个<option value="123">abc</option>,我将寻找"abc"。

有选择器来做这个吗?

我在寻找类似于$('#选择选项[值="123"]');除了文本。


当前回答

这对我来说很管用:

var result = $('#SubjectID option')
            .filter(function () 
             { return $(this).html() == "English"; }).val();

result变量将返回匹配文本值的索引。现在我将使用它的索引来设置它:

$('#SubjectID').val(result);

其他回答

这是我在jquery V3.6.0的工作在2022年

$("#select >option").filter( function()
{
    if ($(this).text() === "123")
    {
        $(this).prop("selected", true);
    }
});

我尝试了其中的一些功能,直到我找到了一个可以同时在Firefox和IE中运行的功能。这是我想到的。

$("#my-Select").val($("#my-Select" + " option").filter(function() { return this.text == myText }).val());

另一种更容易读懂的写法:

var valofText = $("#my-Select" + " option").filter(function() {
    return this.text == myText
}).val();
$(ElementID).val(valofText);

伪代码:

$("#my-Select").val( getValOfText( myText ) );

这也是可行的。

$(" #测试”)。找到(“选择选项:包含(B)”).filter(":选择");

您可以遍历选项,也可以将相同的文本放在选项的另一个属性中并使用该属性进行选择。

我遇到了同样的问题,下面是工作代码:

$("#test option").filter(function() {
    return $(this).text() =='Ford';
}).prop("selected", true);

演示:http://jsfiddle.net/YRBrp/83/