我有一个包含10个选项的选择框。每次选择一个选项时,它会在localstorage中设置您选择的ID为“select1”的值。
例如:如果选择localstorage中的第一个选项:Key:Emailclient - Value:Option1。
现在,Iom尝试在选择表单中创建localstorage的值,选择的属性。
这是我尝试的但似乎不起作用:
if (localStorage.getItem("Select1") == "Option1"){
$('#selectbox').val("Option1").attr("selected");
}
我做错了什么?
编辑:
这是我的代码:
<select id="selectbox" >
<option>Default</option>
<option>Option 1</option>
<option>Option 3</option>
<option>Option 3</option>
<option>Option 4</option>
<option>Option 5</option>
<option>Option 6</option>
</select>
由于
答案 0 :(得分:25)
这有效:
var optionValue = localStorage.getItem("Select1")
$("#selectbox").val(optionValue)
.find("option[value=" + optionValue +"]").attr('selected', true);
答案 1 :(得分:1)
我想你可能正在寻找这样的东西。 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/
答案 2 :(得分:0)
在进一步审核时,您似乎想要更完整的功能link
search = "Option 5";
$('#selectbox option:contains('+search+')').prop('selected',true);
答案 3 :(得分:0)
试试这个:
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);
}
答案 4 :(得分:0)
这就是你应该需要的:
$("#selectbox").val(localStorage.getItem("selectbox"));
我为一个例子更新了一个前一个小提琴: http://jsfiddle.net/uY7ck/1/
编辑: 在您最初发布的代码中,假设您使用相同的选择框设置localStorage,您将比较“Option1”(无空格)和“选项1”(空格)。该比较将永远不会起作用,因此永远不会选择该选项。