Javascript JQuery转换";选项:包含";转换为精确的字符串值

Javascript JQuery转换";选项:包含";转换为精确的字符串值,javascript,jquery,Javascript,Jquery,现在,我从JQuery中获得了一个select选项的value(literalvalue属性),问题是它使用它找到的第一个值,该值只是“包含”了该关键字 例如,如果我有一个带有两个选项的选择:银色除法(value=1)和银色(value=2),如果我调用下面的代码行,它将返回(value=1)而不是(value=2) Q:我一直在尝试搜索类似于option:equals的内容,但没有成功,因此它只查找精确的字符串匹配。我试过各种各样的测试和猜测,如下所示 var setIndex = $("#u

现在,我从JQuery中获得了一个
select
选项的
value
(literal
value
属性),问题是它使用它找到的第一个值,该值只是“包含”了该关键字

例如,如果我有一个带有两个选项的
选择
:银色除法(
value=1
)和银色(
value=2
),如果我调用下面的代码行,它将返回(
value=1
)而不是(
value=2

Q:我一直在尝试搜索类似于
option:equals
的内容,但没有成功,因此它只查找精确的字符串匹配。我试过各种各样的测试和猜测,如下所示

var setIndex = $("#userElo" + ID + " > option:contains" + ranking).val();
var setIndex = $("#userElo" + ID + " > option[text=" + ranking + "]").val();
var setIndex = $("#userElo" + ID + " > option[text=" + ranking).val();
这是一个简单的比例尺,显示了银币部门和银币发行情况

不过我已经没有什么想法了,所以如果有人知道这个解决方案的一些语法,那就太棒了


谢谢

您需要选择所有可能匹配的选项,然后使用函数将其缩小到与所需文本真正匹配的选项。这应该做到:

var ranking = "Silver";
var setIndex = $("#userElo > option").filter(function() {
    return $(this).text() === ranking;
}).val();

谢谢你的回复!我明白你的意思,但我似乎无法让这项工作在我的工作。“我实现错了吗?”Austin如abhitalks所说,这是因为代码中没有ID变量。我没有看小提琴,我只是假设您问题中的代码尝试使用了正确的选择器。我将编辑我的答案。编辑:这是答案。啊,谢谢!我注意到我忘了在
$(this).text()
上使用
trim()
,因为我的数据库在值中添加了额外的空白。
var ranking = "Silver";
var setIndex = $("#userElo > option").filter(function() {
    return $(this).text() === ranking;
}).val();