【问题标题】:Using AJAX to create a datalist使用 AJAX 创建数据列表
【发布时间】:2016-05-13 01:52:39
【问题描述】:

我正在尝试使用 AJAX 添加到数据列表。我要求的网页只有各自的城市名称。我基本上有:

(function() {
"use strict";

    window.onload = function() {
        fetch("cities");
    };

    function fetch(mode) {
        var request = new XMLHttpRequest();
        request.onload = getCities();
        request.open("GET", "https://weather.com/weather/mode=" + mode, true);
        request.send();
    }

    function getCities() {
        //loop while there's data/string to grab {
            var city = document.createElement("option"); 
            city.innerHTML = this.responseText; //set the option as the name of the city from the request
            document.getElementById("cities").appendChild(city);
        }
    }
}) ();

该网页只是我在服务器上使用的网页的填充物,但我正在尝试为每个字符串创建一个新的选项标签并将其附加到我的 html 中的数据列表中,但我遇到了问题捕捉任何东西。出于某种原因,我只是收到一个未定义的错误。抱歉,我对 javascript 和 AJAX 有点陌生。

请求页面的网页布局:

阿比让 阿克拉 阿达纳 亚的斯亚贝巴 艾哈迈达巴德 阿勒颇 亚历山大港 阿尔及尔 阿拉木图 安卡拉 鞍山 巴格达 巴库 万隆 班加罗尔 曼谷

【问题讨论】:

  • 不应该是request.send();吗?
  • 啊,这可能是问题
  • 修复了这个问题,但我仍然遇到同样的错误
  • 您可以将debugger; 行添加到您的任何函数中,然后打开Chrome 开发者工具> 控制台,最后重新加载页面。调试器应该在断点处停止,您可以使用右侧的小箭头进行单步调试等功能。
  • 它也应该是getCities() - 你需要添加括号来执行函数

标签: javascript jquery ajax datalist


【解决方案1】:

您的函数调用中缺少括号 ()

(function() {
    "use strict";

    window.onload = function() {
        fetch("cities");
    };

    function fetch(mode) {
        var request = new XMLHttpRequest();
        request.onload = getCities();      // <- brackets missing here
        request.open("GET", "https://weather.com/weather/mode=" + mode, true);
        request.send();                    // <- and here
    }

    function getCities() {
        var city = document.createElement("option");
        document.getElementById("cities").innerHTML = this.responseText;
    }
}) ();

我也不清楚你的getCities 函数应该如何工作。您正在创建一个选项集,但没有将其添加到您的 DOM。我也不确定this.responseText 应该是什么。

【讨论】:

  • 它还没有完成,因为我不确定我从请求返回中得到了什么。我想用一个循环进行迭代,每次迭代都会在内部 html 中创建一个包含城市名称的新选项标签,然后将其附加到我的数据列表中,但我还没有走那么远,因为我一直遇到问题。
  • 我请求的网页只有:阿比让 阿克拉 阿达纳 亚的斯亚贝巴 艾哈迈达巴德 阿勒颇 亚历山大 阿尔及尔 阿拉木图 安卡拉 安山 巴格达 巴库 万隆 班加罗尔 曼谷,我正在尝试将这些中的每一个都添加为我的数据列表中的一个选项.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
  • 2017-02-18
相关资源
最近更新 更多