我有一个非常简单的选择,带有自定义选项属性:
<select name='beverage' id='beverage'>
<option value='0' desc='Tea'>Tea</option>
<option value='1' desc='Coffee'>Coffee</option>
<option value='2' desc= ‘Lemonade'>Lemonade</option>
</select>
如果我传递了一个基于'value'的变量,我可以通过这样轻松地使相应的选项“Selected”:
Var chosen = 1;
$("#beverage").val( chosen ).attr('selected',true);
但是如果我根据'desc'attr传递一个var,就像这样:
Var chosen = 'Coffee';
如何进行选择?我尝试过无穷无尽的组合:
($("#beverage").attr( 'desc' = chosen )).attr('selected',true);
或
($("#beverage").attr( ['desc' = chosen] )).attr('selected',true);
并尝试使用过滤器选项但没有成功。 非常令人沮丧,因为我知道这是一个简单的问题。
答案 0 :(得分:1)
您可以使用属性选择器,但必须定位具有属性而不是选择的选项:
var chosen = 'Coffee';
$("#beverage option[desc='" + chosen + "']").prop('selected', true);
请注意,desc
不是有效的属性,您应该使用data-desc
代替。
答案 1 :(得分:0)
$('#beverage[descr="chosen"]').attr('selected',true);