Javascript uncatch Referenceerror,从 localStorage 检索数据时出错

Javascript Uncaught ReferenceError when retrieving data from localStorage

本文关键字:检索 数据 出错 localStorage uncatch Referenceerror Javascript      更新时间:2023-09-26

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

按下代码生成的按钮时,控制台中会出现以下内容

Uncaught ReferenceError: bar is not defined
Uncaught ReferenceError: doe is not defined
14
12345
14

处理器.php

if (isset($_POST['text']))
    die($_POST['text']);

我做错了什么?感谢您阅读:)

更改

$("#test").append('<button onclick="senddata('+localStorage[key]+')">'+key+'</button>');

$("#test").append('<button onclick="senddata('''+localStorage[key]+''')">'+key+'</button>');

否则,它将尝试将未定义的变量barsendata(bar))而不是字符串'bar'sendata('bar'))发送。

数字文字是裸写的。例如123

但字符串文本始终需要单引号或双引号。例如。 'foo'"foo"

检查是否根据需要引用字符串文本。

另外,您是否尝试过调试?逐步浏览脚本,以准确查看正在发生和未发生的情况。您也可能在某个时候收到错误。