1

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

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

如果我传递了一个基于“值”的变量,我可以通过以下方式轻松地使相应的选项“选定”:

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

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

4

2 回答 2

1

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

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

小提琴

请注意,这desc不是一个有效的属性,您应该data-desc改用它。

于 2013-04-13T22:11:41.183 回答
0
$('#beverage[descr="chosen"]').attr('selected',true);
于 2013-04-13T22:11:21.353 回答