jquery - 尝试拉取 json img 时未定义

标签 jquery ajax

我正在尝试使用他们的 API 将 NASA 当天的图片填充到 div 中。

我已经用 jQuery 编写了 AJAX 请求,但是当我执行该函数时,我只获得了指向 undefined 的链接

我的函数缺少什么?

$(document).ready(function() {
    $('form').submit(function(evt) {
        evt.preventDefault();
        //AJAX
        var url = "https://api.nasa.gov/planetary/apod?api_key=KmKClvkvdi3Ug54cIAhw8sd43XnYVitmTz2lAjGw"
        function nasaData(data) {
            var photoHTML = '<div>';
            $.each(data, function(i, photo) {
                photoHTML += '<a href="' + photo.url + '">';
                photoHTML += '<p>"' + photo.explaination + '"</p>'
                photoHTML += '<img src="' + photo.copyright + '"> </a>';
            });
            photoHTML += "</div>";
            $('#photos').html(photoHTML);
        }
        $.getJSON(url, nasaData);
    }); //end eventsubmit
});

标记

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
        <link rel="stylesheet" type="text/css" href="flicker.css">
        <title>Testing Access to Flicker API</title>
        <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
        <script src="flicker.js"></script>
    </head>
    <body>
        <div class="container">
            <h1 class="text-center">Welcome to the  API search test.</h1>
            <h4 class="text-center">Use the form below to search the open NASA API based.</h4>
            <form>
                <div class="col-sm-4 form-group">
                    <input type="submit" class='button' />
                </div>
            </form>
        </div>
        <div id="photos"></div>
    </body>
</html>

最佳答案

无需使用$.each(),因为所有内容都已在data参数中。

给你。

$(document).ready(function () {
    $('form').submit(function (evt) {
        evt.preventDefault();
        //AJAX
        var url = "https://api.nasa.gov/planetary/apod?api_key=KmKClvkvdi3Ug54cIAhw8sd43XnYVitmTz2lAjGw"
        function nasaData(data) {
            var photoHTML = '<div>';
            photoHTML += '<a href="' + data.hdurl + '">';
            photoHTML += '<p>"' + data.title + '"</p>';
            photoHTML += '<img src="' + data.hdurl + '"> </a>';
            photoHTML += "</div>";
            $('#photos').html(photoHTML);
        }
        $.getJSON(url, nasaData);
    }); //end eventsubmit
});
<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="flicker.css">
    <title>Testing Access to Flicker API</title>
    <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
    <script src="flicker.js"></script>
</head>
<body>
    <div class="container">
        <h1 class="text-center">Welcome to the  API search test.</h1>
        <h4 class="text-center">Use the form below to search the open NASA API based.</h4>
        <form>
            <div class="col-sm-4 form-group">
                <input type="submit" class='button' />
            </div>
        </form>
    </div>
    <div id="photos">
    </div>
</body>
</html>

注意:使用 console.log() 来使用 API 是检查传递数据的更好选择。

Codepen 网址:http://codepen.io/arsho/full/ZOXago/

关于jquery - 尝试拉取 json img 时未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38288713/

相关文章:

javascript - jquery选择类

javascript - 当我按退格键时,逗号被插入输入框,数字没有按要求格式化

javascript - 在 TinyMCE 中初始化后修改工具栏的正确方法

jquery - 加载innerHTML后触发事件

jquery - 在表格中水平显示单选按钮选项?

javascript - 使用 jQuery 选择第 n 列中的所有单元格

javascript - Angular : Passing data back to my controller from a factory ajax call

javascript - IE 不应用动态加载的 CSS

javascript - 如何.abort() 一个ajax 文件上传?

javascript - 刷新 UpdatePanel 时未加载 Google 交互式图表