Jquery $.getJson函数未附加到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.

所以我试图从提供给我的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.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
    是您的朋友),并与您尝试分配的值匹配
  • 这是一个有效的演示:

    这是一个非常有用的救命稻草!非常感谢你!现在很晚了,但我明天早上会更仔细地学习。