从本地存储检索数据时发生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> &

我编写的以下代码仅在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>

<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>');