Localstorage:如果<li>的ID存在于localstorage alert </li>中

时间:2011-11-10 22:16:33

标签: javascript jquery local-storage html-lists

我想检查localstorage中是否存在<li>的ID以提醒...

例如,li有id,例如item-1,item-2,item-3等。在localstorage中有一个名为 id 的值,它获取一个具有相同名称的字符串: item-1,item-2,item-3。我想检查,当我点击带有id item-2的li时,如果item-2存在于localstorage中以进行相应的警告。

这是我的HTML:

<ul id="bxs" class="tabs"> 
    <li id="item-1">1</li> 
    <li id="item-2">2</li> 
    <li id="item-3">3</li> 
    <li id="item-4">4</li> 
    <li id="item-5">5</li> 
</ul>
... etc

这就是我的本地存储的样子:

Key: result

Value: [{"id":"item-1","href":"google.com"},{"id":"item-2","href":"youtube.com"}] 

我按照以下方式添加列表:

var result = JSON.parse(localStorage.getItem("result"));
if(result != null) {
    for(var i=0;i<result.length;i++) {
        var item = result[i];
        $("#bxs").append($("<li></li>").attr("id", item.id).html(item));

    }
}

我希望,当我点击<li>时,检查他们的ID是否在localstorage中作为“ id ”存在,并相应提醒。像这样:

$("#bxs").on('click', 'li',function() {
// if exists alert('exists') else alert('doesn't exists')   
    });

我试过了,但它始终警告它不存在:

var result = JSON.parse(localStorage.getItem("result"));
        if(result != null) {
            for(var i=0;i<result.length;i++) {
                var item = result[i];
                if(item.id != null) {
                    alert('doesnt exists');
                }else {
                    alert('exists');

                }
            }
        }

1 个答案:

答案 0 :(得分:3)

你在这里

$("#bxs").on('click', 'li',function() {
    var exists = false
    for(var i=0;i<result.length;i++) {
        var item = result[i];
        if(item.id == $(this).prop("id")) {
            exists = true;
            break;
        }
    }
    if(exists) {
        alert("exists");
    }
    else {
        alert("doesn't exists");
    }
});