相当于没有jQuery的getJSON函数

6 javascript getjson

没有jQuery,这种方法相当于什么?

$(function() {
    $.getJSON("datas.json", function(e) {
        var t = [];
        $.each(e, function(e, t) {
            $("div#" + e).text(t)
        })
    })
})
Run Code Online (Sandbox Code Playgroud)

谢谢.

小智 10

使用普通的JavaScript您的代码看起来像这样:

function createElements(elements) {
    // Assuming you get an array of objects.
    elements = JSON.parse(elements);

    elements.forEach(funciton (element) {
        var div = document.getElementById(element.id);
        div.innerHTML = element.text;
    });
}

var request = new XMLHttpRequest();

request.onload = createElements;
request.open("get", "datas.json", true);
request.send();
Run Code Online (Sandbox Code Playgroud)

或者您可以使用其他酷库,如superagent,然后您的代码将如下所示:

var request = require('superagent');

function createElements(elements) {
    // Assuming you get an array of objects.
    elements = JSON.parse(elements);

    elements.forEach(funciton (element) {
        var div = document.getElementById(element.id);
        div.innerHTML = element.text;
    });
}

request.get('datas.json').end(function(error, elements){
    if (!error) {
        createElements(elements);
    }
});
Run Code Online (Sandbox Code Playgroud)


Jam*_*iec 4

您发布的代码有几个部分。

$(function(){
  ....
});
Run Code Online (Sandbox Code Playgroud)

这相当于 jQuerywindow.onload = function(){..}

$.getJSON("datas.json", function(e) {
   ..
});
Run Code Online (Sandbox Code Playgroud)

这是 jQuery 的 ajax get 请求,这个看一下 XMLHttpRequest

$.each(e, function(e, t) {
   ..
});
Run Code Online (Sandbox Code Playgroud)

这只是对 中的元素执行 foreach 操作e。根据 ajax 调用返回的内容,您可能需要一个forfor...in多个循环。

$("div#" + e).text(t)
Run Code Online (Sandbox Code Playgroud)

这设置了元素的文本,可能可以替换为.innerHTML