你忘了「;」在i++
後...
你可以使用index
與each()
而不是使用「我」的變量:
$('.ingredients').each(function(index) {
$(this).find('option[value="' + ids[index] + '"]').attr("selected","selected");
});
此外,設置上的選項選擇attr爲比你想象的麻煩一點首先是因爲它會影響其他元素,如果select元素是'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);
});
它不工作,我不知道問題出在哪裏..它不選擇任何選項 – pkrpkr
你能幫助我嗎?這裏是完整的代碼(約95行)[鏈接](http://soap.protein24.co.uk/datasheets/) – pkrpkr
它也不工作..我不明白這一點。如果我添加「新的價值」,然後添加新的成分,它必須重新加載與新的成分選擇字段並保存選定的值。我不知道什麼是錯的 – pkrpkr