0

好的,所以我正在用一个看起来像这样的 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()or.html()我会得到所选标签的值。我想做的是根据“过滤器”的值更改所选选项,例如,我想检查所选选项是否具有过滤器“否”,如果没有,我想选择该选项确实如此。

任何帮助,将不胜感激。

4

2 回答 2

2

您可以为您的 porpose 使用数据属性:

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/

PS您可以根据需要放置mutch数据属性。

于 2012-06-22T12:33:01.810 回答
1

Add a new attribute to each option which contains the filter value

<select>
    <option filter="en" value="2">English</option>
    <option filter="no" value="3">Norwegian</option>
    <option filter="n1" value="4">Dutch</option>
</select>

You will get the selected option with $('select option:selected') and get value of the filter attribute from it.

$('select').change(function(){
    console.log($('select option:selected').attr('filter'));
});
于 2012-06-22T12:48:48.807 回答