【问题标题】:Displaying Info about a JSON User显示有关 JSON 用户的信息
【发布时间】:2019-04-07 00:18:44
【问题描述】:

创建一个 jQuery 事件处理程序,它将启动一个 Ajax 请求、检索数据并提取所需的信息。我需要根据在<div id="results"> 中输入的用户名显示用户名和电子邮件。它还需要在<div id="results"> 中说,如果根据输入没有找到用户名,它就找不到用户。

如果我正在访问的用户 JSON 文件 https://jsonplaceholder.typicode.com/users/

<script>
$(document).ready(function() {
$("#btnSubmit").click(function(){
    var username = $("#user").val();
    $.ajax( {
        url: 'https://jsonplaceholder.typicode.com/users/',
        method: 'GET'
    }).then(function(data) {
        $.get(username);
        $.each(data, function(index, user) {
            if (user['username'] == username) {
                $('#results').text(''+ user.name +' ('+user.email +')');
            } else {
                $('#results').text('Sorry, no user could be found with the username '+ username+ '');
            }


        });

    });
}); 
});
</script>

我能够根据用户名找到用户,但我不知道下一步是如何获取用户名和电子邮件。

【问题讨论】:

  • $.get() 用于发出 AJAX 请求。您不太可能想在这里使用它
  • 你想要这样的东西...if (user.username === username) { $('#results').text(`${user.name} &lt;${user.email}&gt;`) }
  • $('#results').text(${user.name} &lt;${user.email}&gt;) 合并不显示指定用户名的名称或电子邮件。它只是输出
  • 这简直是不可能的。请update the code in your question你现在拥有的东西
  • Phil 不要再打扰你了,但我终于让我的代码工作了。我现在遇到的唯一问题是一切都默认为 else 语句,但如果我删除它,并输入一个已知的用户名,if 语句将运行。如果是未知用户名,则不会发生任何事情。但是在我的代码中包含 else 语句时,已知和未知的用户名将在 else 语句中运行。知道为什么吗?

标签: javascript jquery html json ajax


【解决方案1】:

您不需要 $.get(),只需使用 JS 循环即可。这个 sn-p 有效:

$(document).ready(function() {
    $("#btnSubmit").click(function(){
        var username = $("#user").val();
        $.ajax( {
            url: 'https://jsonplaceholder.typicode.com/users/',
            method: 'GET'
        }).success(function(data) {

            // Data is an array, let loop through each, to get object data
            for (var i = 0; i < data.length; i++) {

                // Get object's property values
                var dataUsername = data[i].username;
                var dataUserEmail = data[i].email;

                // Output user data if user is matched
                if(dataUsername.toLowerCase() == username.toLowerCase()){
                    $('#results').text(dataUsername + ' ' + dataUserEmail);
                }
            }
        });
    }); 
});

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 2017-05-30
    • 2012-01-12
    • 2012-08-29
    • 1970-01-01
    相关资源
    最近更新 更多