好的,所以我填充了一个带有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()
,我会获得所选标签的值。
我想要做的是根据“过滤器”的值更改所选选项,所以例如我想检查所选的选项是否具有过滤器“否”,如果不是,我想要选择该选项这样做。
任何帮助都将不胜感激。
答案 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');
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'));
});