检查localstorage中是否具有相同的值

时间:2014-01-04 00:34:55

标签: javascript jquery local-storage

我的代码的这一部分有一个错误,当我点击“ - ”img它会删除存储的名称,但是如果我再次点击,这次是“+”img,而不是从淡入淡出返回div,它创建一个具有相同值的新div,然后我有两个div和两个具有相同值的键。

function fade(id) {

    var element = document.getElementById(id);
    var arr = new Array();   

$('.qualquer').each(function() {
  arr.push($(this).text());
});

    $(document).ready(function(){
    $(element).toggle(
        function a(){
        $(element).fadeTo("fast", 0.5, function(){
            $("<img id='maix"+ide+"'>").attr('src', 'pics/+.gif')
            .appendTo(element)
            .addClass("minus3");
            localStorage.removeItem('artist'+id);            
        })
    },
        function b(){
        $(element).fadeTo("fast", 1, function(){
            $("#maix"+ide+"").remove();
            localStorage.setItem('artist'+id,arr[id]);   
        })
    });
    });   
}

HTML,它是在javascript上生成的,这就是为什么那些加:

"<div class='qualquer' id='"+(div+i)+"'>" + "<div onClick=location.href='artistinfo.html' class='diveText'> " + reals[i] + "</div>" + "<div class='diveImg'>" + "<img src='pics/-.png' id='"+(img+i)+"' onClick='fade(this.id)' class='minus'>" + "</div>" + "</div>"

我是否足够清楚?

2 个答案:

答案 0 :(得分:1)

首先用此验证

var isExist = !!localStorage.getItem('localStorageVariableName');

所以,如果你弄错了,那么

localStorage.setItem('localStorageVariableName', value);

希望这有帮助。

答案 1 :(得分:0)

您可以执行以下操作来检查localStorage中是否存在值:

Storage.prototype.hasValue = function(v) {

    for(var prop in this) 
        if(this.hasOwnProperty(prop) && localStorage[prop] === v) return true;
    return false;
}

localStorage.setItem('test', 'testing 1');
localStorage.setItem('test2', 'testing 2');
localStorage.setItem('test3', 'testing 3');

console.log(localStorage.hasValue('testing 1'));

http://jsfiddle.net/AL6Mk/1/