根据其他属性更改选择的值

时间:2012-06-22 12:21:07

标签: jquery

好的,所以我填充了一个带有JSON的选择框,看起来像这样:

Object{
"data":
[{"filter":"en","id":"2","label":"English"},
{"filter":"no","id":"3","label":"Norwegian"},
{"filter":"nl","id":"4","label":"Dutch"}]
}

目前,如果我jQuery("#mySelect").val(),我会为所选选项获取“id”的值,如果我使用.text().html(),我会获得所选标签的值。 我想要做的是根据“过滤器”的值更改所选选项,所以例如我想检查所选的选项是否具有过滤器“否”,如果不是,我想要选择该选项这样做。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

您可以使用数据属性:

HTML

<select>
    <option data-filter="en" value="1">English</option>
    <option data-filter="no" value="2">Norwegian</option>
</select>​

JS

$('select').change(function() {
    var id = $(this).find('option:selected').data('filter');
    alert(id);
});​

如果您要动态创建选择,您可以设置数据属性,例如:$('option').data('filter', 'no');

示例:http://jsfiddle.net/kzHfF/

P.S。您可以根据需要添加mutch数据属性。

答案 1 :(得分:1)

为包含过滤器值

的每个选项添加新属性
<select>
    <option filter="en" value="2">English</option>
    <option filter="no" value="3">Norwegian</option>
    <option filter="n1" value="4">Dutch</option>
</select>

您将获得带有$('select option:selected')的选定选项,并从中获取filter属性的值。

$('select').change(function(){
    console.log($('select option:selected').attr('filter'));
});
相关问题