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

时间:2011-09-19 15:59:30

标签: jquery local-storage drop-down-menu

我有一个包含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>

由于

5 个答案:

答案 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”(空格)。该比较将永远不会起作用,因此永远不会选择该选项。