2013-07-26 2 views
2

Я пытаюсь скрыть свой div, если нет значения ключа localStorage.если значение ключа localStorage не существует

С приведенной ниже строкой я добился только того, чтобы скрыть div, когда ключ localStorage полностью удален, но нужно сделать то же самое, если localStorage ключ не получил никакого значения вообще просто [].

window.localStorage.getItem('items') === null 

Как это будет выполняться?

ответ

6

Вы можете добавить необходимые условия с помощью OR оператора ||

var items = window.localStorage.getItem('items') 

if (items === null || items.length === 0) 
{ 
    // items is null, [] or '' (empty string) 
} 

Если вы должны проверить undefined где-то, как хорошо вы можете изменить === null к == null или расширить с дополнительным условием, как этот

if (items === undefined || items === null || items.length === 0) 
{ 
    // items is undefined, null, [] or '' (empty string) 
} 

EDIT: Вот что вы можете сделать, чтобы получить массив напрямую

var items = JSON.parse(window.localStorage.getItem('items')) 

if (items === null || items.length === 0) 
{ 
    // items is null or [] 
} 
+1

Спасибо Ma3x, но это не работает, когда [] в поле значений, возможно, оно принимает [] как символы? – qqruza

+0

Да, я думаю, что исправил его с помощью if (items === undefined || items === null || items.length <3) – qqruza

+1

@qqruza: если у вас есть массив, закодированный как строка JSON, вы можете сравните как этот 'items == '[]'' или сначала проанализируйте с помощью 'var itemsArray = JSON.parse (items)', а затем используйте 'itemsArray.length === 0'. – Ma3x

3

Как насчет просто:

if (!localStorage.nameOfYourLocalStorage) { 
    // do the following if the localStorage.nameOfYourLocalStorage does not exist 
} 

Пример того, как это может быть полезно:

if (!localStorage.nameOfYourLocalStorage) { 
    localStorage.nameOfYourLocalStorage = defaultValue; 
} 

Здесь скрипт будет проверять, если имя LocalStorage не существует, и если он не будет, он создаст его со значением по умолчанию.

И если вы хотите, чтобы действовать, когда она делает существует, вы можете добавить еще после того, если блок для продолжения или удалить "! 'от если блок состояние.

1
Storage.prototype.has = function(key) { 
    return (key in this && !(key in Storage.prototype)); 
}; 
+1

Можете ли вы предоставить дополнительную информацию? – Phiter

Смежные вопросы