没有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)
您发布的代码有几个部分。
$(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 调用返回的内容,您可能需要一个for或for...in多个循环。
$("div#" + e).text(t)
Run Code Online (Sandbox Code Playgroud)
这设置了元素的文本,可能可以替换为.innerHTML。