使用选项值添加“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); }