本地存储未定义
localStorage undefined
用这个 function
:
function appendToStorage(name, data) {
var old = localStorage.getItem(name);
if (old === null) old = '';
localStorage.setItem(name, old + data);
}
appendToStorage('oldData', $('textbox').value);
和这个 html
:
<textarea name ="textbox" cols="50" rows="5">
say it...
</textarea><br>
<input type="submit" onclick="appendToStorage(name, data)"/>
我在控制台上得到 undefinedundefinedundefined...
。
我错过了什么?
您需要将文本区域的值和存储键传递给 appendToStorage
。
所以最好使用另一种方法,它会在单击按钮时调用
<input type="submit" onclick="addTextArea();" />
然后
function appendToStorage(name, data) {
var old = localStorage.getItem(name);
if (old === null) old = '';
localStorage.setItem(name, old + data);
}
addTextArea();
function addTextArea() {
appendToStorage('oldData', $('textarea[name="textbox"]').val());//use .val() to get the value, also need to use attribute selecotr for name
}
演示:Fiddle
很难说出您要在这里实现什么,但是最简单的解决方案是让您的 appendToStorage 函数完成工作:
function appendToStorage (name) {
// get the target element by it's name
var el = document.querySelector('[name="' + name + '"]');
// check we're getting the correct info
console.log("[" + name + "]:", el.value);
// save it to storage (you may also want to retrieve the last value and append it)
window.localStorage.setItem(name, el.value);
}
input {display: block; margin: 0 0 1em; } pre { font-size: 0.9em; display: block; margin: 0.5em 0; }
<script>console.log = function () { document.getElementById("output").innerHTML = Array.prototype.slice.call(arguments).join(" "); }</script>
<textarea name="textbox" cols="50" rows="3">
say it...
</textarea>
<input type="submit" onclick="appendToStorage('textbox')"/>
<textarea name="textbox-again" cols="50" rows="3">
say it again...
</textarea><br>
<input type="submit" onclick="appendToStorage('textbox-again')"/>
<pre id="output"></pre>
注意:以上内容并未反映最佳实践,但它确实展示了如何从文本字段中检索值。
用这个 function
:
function appendToStorage(name, data) {
var old = localStorage.getItem(name);
if (old === null) old = '';
localStorage.setItem(name, old + data);
}
appendToStorage('oldData', $('textbox').value);
和这个 html
:
<textarea name ="textbox" cols="50" rows="5">
say it...
</textarea><br>
<input type="submit" onclick="appendToStorage(name, data)"/>
我在控制台上得到 undefinedundefinedundefined...
。
我错过了什么?
您需要将文本区域的值和存储键传递给 appendToStorage
。
所以最好使用另一种方法,它会在单击按钮时调用
<input type="submit" onclick="addTextArea();" />
然后
function appendToStorage(name, data) {
var old = localStorage.getItem(name);
if (old === null) old = '';
localStorage.setItem(name, old + data);
}
addTextArea();
function addTextArea() {
appendToStorage('oldData', $('textarea[name="textbox"]').val());//use .val() to get the value, also need to use attribute selecotr for name
}
演示:Fiddle
很难说出您要在这里实现什么,但是最简单的解决方案是让您的 appendToStorage 函数完成工作:
function appendToStorage (name) {
// get the target element by it's name
var el = document.querySelector('[name="' + name + '"]');
// check we're getting the correct info
console.log("[" + name + "]:", el.value);
// save it to storage (you may also want to retrieve the last value and append it)
window.localStorage.setItem(name, el.value);
}
input {display: block; margin: 0 0 1em; } pre { font-size: 0.9em; display: block; margin: 0.5em 0; }
<script>console.log = function () { document.getElementById("output").innerHTML = Array.prototype.slice.call(arguments).join(" "); }</script>
<textarea name="textbox" cols="50" rows="3">
say it...
</textarea>
<input type="submit" onclick="appendToStorage('textbox')"/>
<textarea name="textbox-again" cols="50" rows="3">
say it again...
</textarea><br>
<input type="submit" onclick="appendToStorage('textbox-again')"/>
<pre id="output"></pre>
注意:以上内容并未反映最佳实践,但它确实展示了如何从文本字段中检索值。