我正在尝试 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 获取文本并将其存储在本地存储中。
请注意:文本和 Html 是不同的。在你提到的问题中文本。 html()
将返回 Html 内容,如 <a>example</a>
。如果你想获取文本内容那么你必须使用 text()
而不是html()
那么结果将是example
而不是<a>example<a>
。不管怎样,我正在使用你的术语让它成为文本。
第 1 步:从 div 中获取文本。
您所做的不是从 div 获取文本,而是将文本设置为 div。
$('#test').html("Test");
实际上是将文本设置为div,输出将是一个jQuery对象。这就是为什么它将其设置为 [object Object]
.
要获取文本,您必须这样写
$('#test').html();
这将返回一个字符串而不是一个对象,因此结果将是 Test
在你的情况下。
第 2 步:将其设置为本地存储。
你的方法是正确的,你可以写成
localStorage.key=value
但首选方法是
localStorage.setItem(key,value);
设置
localStorage.getItem(key);
得到。
键和值必须是字符串。
所以在你的上下文中代码将变成
$('#test').html("Test");
localStorage.content = $('#test').html();
$('#test').html(localStorage.content);
但是我在你的代码中没有发现任何意义。因为你想从 div 获取文本并将其存储在本地存储中。您再次从本地存储中读取相同内容并将其设置为 div。就像 a=10; b=a; a=b;
如果您遇到任何其他问题,请相应更新您的问题。
关于javascript - 使用 jQuery 设置和获取 localStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40791207/