使用选项值添加“selected”属性

我有一个包含10个选项的选择框。 每次选择一个选项时,它会在localstorage中设置您选择的ID为“select1”的值。

例如:如果选择localstorage中的第一个选项:Key:Emailclient – Value:Option1。

现在,Iom尝试在选择表单中创建localstorage的值,selected属性。

这是我尝试但似乎不起作用:

if (localStorage.getItem("Select1") == "Option1"){ $('#selectbox').val("Option1").attr("selected"); } 

我做错了什么?

编辑:

这是我的代码:

  Default Option 1 Option 3 Option 3 Option 4 Option 5 Option 6  

谢谢

这有效:

 var optionValue = localStorage.getItem("Select1") $("#selectbox").val(optionValue) .find("option[value=" + optionValue +"]").attr('selected', true); 

我想你可能正在寻找这样的东西。 http://jsfiddle.net/tnPU8/3/

它循环选择框的选项,并将它们的值与b的值进行比较。 如果它们相等,则更改选择框的索引,以便显示包含b值的选项。

 var b; //set equal to what you want to compare $('#selectbox').find('option').each(function(i,e){ console.log($(e).val()); if($(e).val() == b){ $('#selectbox').prop('selectedIndex',i); } }); 

编辑:使用localStorage http://jsfiddle.net/tnPU8/7/

进一步审查,看起来你想要更完整的function链接

 search = "Option 5"; $('#selectbox option:contains('+search+')').prop('selected',true); 

这就是你应该需要的:

 $("#selectbox").val(localStorage.getItem("selectbox")); 

我更新了一个前一个小提琴的例子: http : //jsfiddle.net/uY7ck/1/

编辑:在您最初发布的代码中,假设您使用相同的选择框设置localStorage,您将比较“Option1”(无空格)和“选项1”(空格)。 该比较将永远不会起作用,因此永远不会选择该选项。

试试这个:

 if (localStorage.getItem("Select1") == "Option1"){ $('#selectbox option:contains(Option1)').prop('selected',true); // jquery 1.6+ } 

如果您使用的是早于1.6的jQuery版本,请将.prop替换为.attr

编辑:更动态的版本

 if (localStorage.getItem("Select1")) { $('#selectbox option:contains(' + localStorage.getItem("Select1") + ')').prop('selected',true); }