Jquery $.getJson函数未附加到div
所以我试图从提供给我的json文件中获取.json数据,循环遍历它,每次创建一个div并将该数据附加到它 到目前为止,我有这个功能:Jquery $.getJson函数未附加到div,jquery,html,json,getjson,Jquery,Html,Json,Getjson,所以我试图从提供给我的json文件中获取.json数据,循环遍历它,每次创建一个div并将该数据附加到它 到目前为止,我有这个功能: $.getJSON( "https://api.myjson.com/bins/14uau1", function(data) { var dealers = data.dealers.map(dealer => { let currentDealer = dealer.data; let newDiv = document.
$.getJSON( "https://api.myjson.com/bins/14uau1", function(data) {
var dealers = data.dealers.map(dealer => {
let currentDealer = dealer.data;
let newDiv = document.createElement("div");
newDiv.setAttribute("id", currentDealer.customerID);
return newDiv.innerHTML= currentDealer;
})
dealers.map(i => {
let holder = document.getElementById("dealer");
holder.appendChild(i);
console.log(i);
})
但是,每当我尝试运行它时,它都会给我这个错误
index:212 Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node
我意识到这意味着它得到的对象不被视为HTML元素,因此不能通过.innerHTML将其追加到div中
那么什么是最好的方法呢?首先,代码中有几个语法错误 缺少一个
})
,您需要处理它
返回newDiv.innerHTML=currentDealer
此行返回的是一个赋值,而不是您可能想要的
newDiv
。相反,您应该在返回元素(returnnewdiv
)之前首先分配innerHTML(newDiv.innerHTML=
)。这就是您得到未捕获类型错误的地方
您还将Javascript对象(currentDealer
)分配给innerHTML,而不是字符串。如果要输出此对象的JSON字符串,请使用JSON.stringify
。否则,请确保您正在分配所需的实际字段,例如currentDealer.data.companyID
还要注意,在这一行newDiv.setAttribute(“id”,currentDealer.customerID)代码>,您正在尝试分配未定义的值currentDealer.customerID
总之是这样的
首先,检查语法错误
然后,检查您分配的值是否存在(console.log
&console.dir
是您的朋友),并与您尝试分配的值匹配
这是一个有效的演示:
这是一个非常有用的救命稻草!非常感谢你!现在很晚了,但我明天早上会更仔细地学习。