1. ホーム
  2. javascript

[解決済み] jQueryでlocalStorageを設定・取得する

2022-03-01 14:18:43

質問

localStorageを試していて、divからテキストを取得してlocalStorageに格納しようとしましたが、[object Object]として設定され、[object Object]が返されます。なぜこのようなことが起こるのでしょうか?

localStorage.content = $('#test').html('Test');

$('#test').html(localStorage.content);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="test"></div>

解決方法は?

あなたは、次のことを試みていると言いました。 divからテキストを取得する ローカルストレージに保存する。

ご注意:TextとHtmlは別物です。質問ではテキストとありますが html() のようなHtmlコンテンツが返されます。 <a>example</a> テキストコンテンツを取得したい場合は text() の代わりに html() とすると、結果は example ではなく <a>example<a> . とにかく、私はあなたの専門用語を使っているのですから、テキストにしてください。

ステップ1: divからテキストを取得します。

は、divからテキストを取得するのではなく、divにテキストをセットしています。

$('#test').html("Test"); 

は実際にはdivにtextを設定し、出力はjQueryオブジェクトになります。そのため [object Object] .

テキストを取得するには、次のように記述する必要があります。
$('#test').html();

これはオブジェクトではなく文字列を返すので、結果は次のようになります。 Test を使用します。

ステップ2: をローカルストレージに設定します。

あなたのやり方は正しく、次のように書くことができます。

localStorage.key=value

しかし、望ましい方法は

localStorage.setItem(key,value); を設定します。

localStorage.getItem(key); を取得する。

keyとvalueは文字列でなければなりません。

ということで、あなたのコンテキストでは、コードは次のようになります。

$('#test').html("Test");
localStorage.content = $('#test').html();
$('#test').html(localStorage.content);

しかし、あなたのコードには何の意味も見いだせません。なぜなら、あなたはdivからテキストを取得し、それをローカルストレージに保存したいからです。そしてまた、ローカルストレージから同じものを読み出して、divにセットしているのです。 a=10; b=a; a=b;

他の問題に直面している場合は、それに応じてあなたの質問を更新してください。