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