我需要检查<select>是否有一个文本等于特定值的选项。
例如,如果有一个<option value="123">abc</option>,我将寻找"abc"。
有选择器来做这个吗?
我在寻找类似于$('#选择选项[值="123"]');除了文本。
我需要检查<select>是否有一个文本等于特定值的选项。
例如,如果有一个<option value="123">abc</option>,我将寻找"abc"。
有选择器来做这个吗?
我在寻找类似于$('#选择选项[值="123"]');除了文本。
当前回答
您可以遍历选项,也可以将相同的文本放在选项的另一个属性中并使用该属性进行选择。
其他回答
之前的建议在jQuery 1.7.2中都不适用,因为我试图根据文本框中的值设置列表的选定索引,而一些文本值包含在多个选项中。我最终使用了以下方法:
$('#mySelect option:contains(' + value + ')').each(function(){
if ($(this).text() == value) {
$(this).attr('selected', 'selected');
return false;
}
return true;
});
这可能会有所帮助:
$('#test').find('option[text="B"]').val();
演示小提琴
这将为你提供带有文本B的选项,而不是包含文本B的选项。
对于最新版本的jQuery,上述问题无法解决。正如下面Quandary所评论的,这是jQuery 1.9.1的工作原理:
$('#test option').filter(function () { return $(this).html() == "B"; }).val();
更新的小提琴
这是在下拉列表中选择文本的最佳方法。
$("#dropdownid option:contains(your selected text)").attr('selected', true);
这对我来说很管用:
var result = $('#SubjectID option')
.filter(function ()
{ return $(this).html() == "English"; }).val();
result变量将返回匹配文本值的索引。现在我将使用它的索引来设置它:
$('#SubjectID').val(result);
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);