我需要检查<select>是否有一个文本等于特定值的选项。
例如,如果有一个<option value="123">abc</option>,我将寻找"abc"。
有选择器来做这个吗?
我在寻找类似于$('#选择选项[值="123"]');除了文本。
我需要检查<select>是否有一个文本等于特定值的选项。
例如,如果有一个<option value="123">abc</option>,我将寻找"abc"。
有选择器来做这个吗?
我在寻找类似于$('#选择选项[值="123"]');除了文本。
当前回答
那是10年前的事了。 现在jquery是EOL,我们可以使用普通的DOM来完成这个简单的工作
document.getElementById("SomeSelectId").querySelectorAll("option").forEach(o => o.selected = o.innerText == text);
其他回答
下面的jquery 1.10.2版本适合我
var selectedText="YourMatchText";
$('#YourDropdownId option').map(function () {
if ($(this).text() == selectedText) return this;
}).attr('selected', 'selected');
});
2022年8月25日。
对于jQuery v3.5.1,真正对我有用的是:
$('#selectID option:contains("label")').prop('selected', true);
如果你在一个变量中有文本,这样做:
ddText = 'Text to find';
$('#selectID option:contains("' + ddText + '")').prop('selected', true);
这也是可行的。
$(" #测试”)。找到(“选择选项:包含(B)”).filter(":选择");
使用prop而不是attr
$('#mySelect option:contains(' + value + ')').each(function(){
if ($(this).text() == value) {
$(this).prop('selected', 'selected');
return false;
}
return true;
});
您可以遍历选项,也可以将相同的文本放在选项的另一个属性中并使用该属性进行选择。