相当于没有jQuery的getJSON函数

时间:2015-03-05 14:05:39

标签: javascript getjson

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

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

感谢。

2 个答案:

答案 0 :(得分: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();

或者您可以使用其他酷库,例如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);
    }
});

答案 1 :(得分:3)

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

$(function(){
  ....
});

这是jQuery相当于window.onload = function(){..}

$.getJSON("datas.json", function(e) {
   ..
});

这是jQuery的ajax get请求,看看XMLHttpRequest

$.each(e, function(e, t) {
   ..
});

这只是对e中元素的预测。根据您的ajax调用返回的内容,您可能需要for循环或for...in循环。

$("div#" + e).text(t)

这会设置元素的文本,可能可以用.innerHTML替换。