2016-03-23 17 views
0

ローカルストレージに保存されている特定の値を検索する方法は不思議です。検索HTML5 localStorageの値

アラートを使用して検索値を表示しようとしました。

function search(){ 
    var sea = document.getElementById('searchbox').value; 
    localStorage.getItem('sea',value); 
    var value = $('#MyTable').find('tr#key_'+sea).children('td.two').text(); 
    alert(value); 
    } 

ローカルストレージに保存されていない値を入力すると、nullが表示されません。

値iの検索のために、ローカルストレージから一致する値をすべて表示するにはどうすればよいですか?

+0

'localStorage.getItem( 'sea'、value);'変数で保持する必要があります。 – Rayon

+0

しかし、すべての値がnullで表示されています – MaryAnn

答えて

0

次のようにあなたのコードのロジックは次のようになります。

  1. から値を取得します検索ボックスを使用して変数に保存する
  2. localStorage

    上記のコードに問題があること
    function search() { 
        // Get the user's input from the page 
        var searchQuery = document.getElementById('searchbox').value; 
    
        // Get the item from LocalStorage 
        var localStorageItem = localStorage.getItem(searchQuery); 
    
        // Do your DOM manipulation magic 
        var elementValue = $('#MyTable') 
        .find('tr#key_' + localStorageItem) 
        .children('td.two') 
        .text(); 
    
        console.log(elementValue); 
    } 
    

    注意、倍の値が存在しないとき:

  3. 上記の名前のキーが

コードDOMの操作部に進みますLocalStorage。次に、localStorageItemnullになり、DOMクエリの.find('tr#key_' + localStorageItem)は失敗します。 localStorageItem !== nullをチェックするifステートメント内でDOM操作をラップすることができます。

1

localStorage.getItem()の構文が正しくありません。このメソッドは、1つのパラメータしか取りません。正しい構文は次のとおりです。

var aValue = storage.getItem(keyName);

keyNameは、値を取得するキーの名前を含む文字列です。このメソッドは、キーの値を返します。したがって、戻り値を格納する必要があります。キーが存在しない場合、nullが返されます。

私は、あなたが検索しているキーを指定してlocalStorageからデータを取得することができ、あなたのコードが

var sea = localStorage.getItem(value); 
+0

私は同じ値を表示したいと思っています。キーを知らない – MaryAnn

+0

@MaryAnn - エンドユーザーはキーを認識しません。あなたがDOM上にそれを印刷しないのであれば。しかし、エンドユーザがある程度のJS知識を持っていれば、 "鍵"を取り出すことができます。 – JRodDynamite

0

されるべきだと思います。あなたは構文が間違っています。 正しい方法は次のとおりです。

LocalStorage.getItem(*key*) 

あなたが使用しているものである.setItem()構文 です:

LocalStorage.setItem(*key*, *value*) 
+0

そうですが、私がローカルストレージにない値で試してみると、nullを表示していません。 – MaryAnn