2

我想寻求一些帮助。我有一个外部 JSON 文件,里面有一个数组,如下所示:

{ "Files": [
    {
        "fileName": "Trains",
        "fileID": "t1"
    },
    {
        "fileName": "Planes",
        "fileID": "p1"
    },
    {
        "fileName": "Cars",
        "fileID": "c1"
    }
]}

我试图最终使用这些数据来填充 XHTML 页面中的下拉选择菜单,同时使用 JavaScript 来编写它。到目前为止,我已经获得了以下信息,但现在无法弄清楚我在最后一道障碍中哪里出错了。对我不理解的任何指示表示赞赏,谢谢。

function fileDropdown() {
    var options = "";
    $.getJSON(
        "json/files.json", 
        function(result) {
            //find the array and do seomthing
            $.each(result.Files, function(key, val) {
                options += '<option value="' + val.fileID + '">' + val.fileName + '</option>';
            });
        }
    );
    document.write("<select>"+options+"</select>");
}
4

3 回答 3

1

试试这个:

function fileDropdown()
{

$.getJSON("json/files.json", function(result) {
//find the array and do seomthing
    var options = "";
    $.each(result.Files, function(key, val) {
        options += '<option value="' + val.fileID + '">' + val.fileName + '</option>';
    });
    var select = $('<select/>');
    select.append(options);
    $(document.body).append(select);
});
}
于 2012-11-22T13:56:40.240 回答
1

谢谢,现在解决了这个问题。会支持你,但需要更多的声誉。

我用了

$.each(result.Files, function(file) {
        selectElement.append($('<option value="' + this.fileID + '">' + this.fileName + '</option>'));
于 2012-11-24T22:37:43.523 回答
0

$.getJSON("json/files.json", ...)表示“获取window.location、附加json/files.json然后使用此 URL 发送 GET 请求”。

要解决此问题,您可以使用绝对file:URL。但是出于安全原因,您的浏览器可能会拒绝加载文件。

另一种方法是让您的 Web 服务器在请求上述 URL 时将文件发送到浏览器。

于 2012-11-22T13:56:15.100 回答