Localstorage: если идентификатор существует в предупреждении localstorage

#javascript #jquery #local-storage #html-lists

#javascript #jquery #локальное хранилище #html-списки

Вопрос:

Я хочу проверить, существует ли идентификатор a <li> в localstorage для предупреждения…

Например, у li есть идентификатор, такой как item-1, item-2, item-3 и т.д. В localstorage есть значение с именем id, и оно получает строку с тем же именем: item-1, item-2, item-3. Я хочу проверить, когда я нажимаю на li с идентификатором item-2, существует ли этот 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
  

И вот как выглядит мой localstorage:

 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> ‘s, проверить, существует ли их идентификатор как ‘id‘ в localstorage, и соответствующим образом предупредить. Что-то вроде этого:

 $("#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:

вот и все

 $("#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");
    }
});