使用自定义属性分配“已选择”

时间:2013-04-13 22:09:45

标签: jquery select

我有一个非常简单的选择,带有自定义选项属性:

    <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);

并尝试使用过滤器选项但没有成功。 非常令人沮丧,因为我知道这是一个简单的问题。

2 个答案:

答案 0 :(得分:1)

您可以使用属性选择器,但必须定位具有属性而不是选择的选项:

var chosen = 'Coffee';
$("#beverage option[desc='" + chosen + "']").prop('selected', true);

FIDDLE

请注意,desc不是有效的属性,您应该使用data-desc代替。

答案 1 :(得分:0)

$('#beverage[descr="chosen"]').attr('selected',true);