为什么它不使用jquery在控制台日志中显示JSON数据?

时间:2017-06-15 06:11:29

标签: javascript jquery json

当我在某个文件中编码时(例如:test.html):

<html>
<head>
    <title>Test</title>
</head>
<body>
 <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
    $.getJSON('https://newsapi.org/v1/articles?source=techcrunch&sortBy=top&apiKey=my-api-key',function(json) {
        console.log(json);

    });
</script>
</body>
</html>

但如果我在其他文件中做同样的事情说(main.js)

(function(){

$.getJSON('https://newsapi.org/v1/articles?source=techcrunch&sortBy=top&apiKey=my-api-key',function(json) {
        console.log(json);

    });

});

上面的代码没有在控制台中显示任何JSON数据,我在HTML中添加了main.js.

2 个答案:

答案 0 :(得分:4)

因为在第二个片段中,该函数根本不执行。

以下代码,

(function(){
     $.getJSON('... url ...', function(json) {
         console.log(json);
     };
});

可以简化为

(function(){});

根本不执行。您需要在要执行的函数末尾放置括号,如下所示:

(function(){}());

或者更好的是,在页面加载后使用jquery文档就绪的简写来正确执行。

$(function(){});

希望它有所帮助。

答案 1 :(得分:1)

您需要唤起您在main.js文件中创建的功能。如果用function() {}包装代码,则定义函数是什么,但不调用它。你需要调用它并定义它。

(function(){

  $.getJSON('https://newsapi.org/v1/articles?source=techcrunch&sortBy=top&apiKey=045089075bc74354be01b34f6335d32b',function(json) {
      console.log(json);
  });

})(); // parenthesis call the function