你忘了一个“;” 在i++
...之后
您可以使用index
witheach()
而不是使用“i”变量:
$('.ingredients').each(function(index) {
$(this).find('option[value="' + ids[index] + '"]').attr("selected","selected");
});
此外,在选项上设置选定的属性比您最初想象的要复杂一些,因为如果选择元素的类型为“select-one”,它会影响其他元素。这是 jQuery Form 插件中提供的一个小插件,用于处理选择/取消选择选项以及复选框和单选。像这样使用它:
只需将其放在代码中的某个位置:
$.fn.selected = function(select) {
if (select == undefined) select = true;
return this.each(function() {
var t = this.type;
if (t == 'checkbox' || t == 'radio')
this.checked = select;
else if (this.tagName.toLowerCase() == 'option') {
var $sel = $(this).parent('select');
if (select && $sel[0] && $sel[0].type == 'select-one') {
// deselect all other options
$sel.find('option').selected(false);
}
this.selected = select;
}
});
};
然后尝试用这个替换你首先给出的代码:
$('.ingredients').each(function(index) {
$(this).find('option[value="' + ids[index] + '"]').selected(true);
});