javascript - 获取 JSON 文件

标签 javascript jquery json web

我想获取一个 json 文件 (Steam API) 并想在表格中显示排序的文件。我已经用一个按钮和一个列表试过了,但它不起作用。而且我不知道如何用 table 做到这一点。

<html>
<head>
    <title>JSON</title>
</head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript">
    $("button").click( function() {
        $.getJSON( "json_data.json", function(obj) { 
            $.each(obj, function(key, value) { 
                $("ul").append("<li>"+value.name+"</li>");
            });
        });
    });;
</script>
<body>
    <ul></ul>
    <button>Refresh</button>
</body>
</html>

最佳答案

你的代码本身就很好!但是当你选择 $("button") ,浏览器实际上还没有处理 button标记本身,所以它在那个时候不存在,click事件未注册。

有两种解决方法:

  1. 移动<script>标签到 <body> 内的末尾标签,在这种情况下为 <button>将在解析脚本时存在。

  2. 您可以保留您的 <script>标记它所在的位置,但将整个脚本包装在 jQuery's $(document).ready() 中处理程序,当整个文档被解析并准备好阅读时执行其回调函数:

    <script type="text/javascript">
        $(document).ready(function() {
            $("button").click( function() {
                $.getJSON( "json_data.json", function(obj) { 
                    $.each(obj, function(key, value) { 
                        $("ul").append("<li>"+value.name+"</li>");
                    });
                });
            });
        });
    </script>
    

关于javascript - 获取 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28362908/

相关文章:

javascript - 无法让 ajax 显示在页面中,但可以在谷歌元素检查器中看到

asp.net-mvc - MVC3 使用 jquery.validate.unobtrusive.js 和 $ ("#form").submit() hijax 不起作用

javascript - 仅替换 iframe src 的一部分

javascript - 使用nodejs测试js文件

javascript - 如何在 WebdriverIO 中点击 CTRL+M (Control + M)

javascript - 用于加载的弹出窗口在 knockout 中不起作用

jquery - 基于ajax请求在radio选项后附加div

json - 如何使用 observable 每 5 秒刷新一次数据

javascript - 调用数字 JSON 字段名称

python - Elasticsearch找不到关键字搜索