从本地存储检索数据时发生Javascript未捕获引用错误
我编写的以下代码仅在localStorage值为整数或该值仅由数字组成时有效。我是Javascript新手,所以答案可能就在我面前从本地存储检索数据时发生Javascript未捕获引用错误,javascript,jquery,ajax,html,Javascript,Jquery,Ajax,Html,我编写的以下代码仅在localStorage值为整数或该值仅由数字组成时有效。我是Javascript新手,所以答案可能就在我面前 <html> <body> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> <div id="test"></div> </body> &
<html>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<div id="test"></div>
</body>
</html>
<script type="text/javascript">
localStorage.setItem('test', '12345');
localStorage.setItem('foo', 'bar');
localStorage.setItem('john', 'doe');
localStorage.setItem('carl', 14);
var name, content;
for (var key in localStorage) {
$("#test").append('<button onclick="senddata('+localStorage[key]+')">'+key+'</button>');
}
function senddata(content) {
$.post("processor.php",
{text: content},
function(response){
console.log(response);
}
);
}
</script>
processor.php
if (isset($_POST['text']))
die($_POST['text']);
我做错了什么?感谢您阅读:)更改
$("#test").append('<button onclick="senddata('+localStorage[key]+')">'+key+'</button>');
$(“#测试”).append(“”+key+“”);
到
$(“#测试”).append(“”+key+“”);
否则,它将尝试发送未定义的变量
bar
(sendata(bar)
),而不是字符串'bar'
(sendata('bar')
)。数字文字是空写的。例如123
但是字符串文本总是需要单引号或双引号。例如,“foo”
或“foo”
检查是否根据需要引用字符串文字
还有,你试过调试吗?逐步浏览您的脚本,查看到底发生了什么和没有发生什么。您也可能会在某个时候收到一个错误
$("#test").append('<button onclick="senddata('+localStorage[key]+')">'+key+'</button>');
$("#test").append('<button onclick="senddata(\''+localStorage[key]+'\')">'+key+'</button>');