2017-08-22 48 views
1

私に提供された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に追加することはできません。

これを行うにはどうすればよいでしょうか?

答えて

1

まず、コードにいくつかの構文エラーがあります。

あなたが気にしておきたい})がありません。

return newDiv.innerHTML = currentDealer
この行は代入ではなくあなたのようなnewDivが意図したかもしれないが返されます。代わりに、要素(return newDiv)を返す前にinnerHTMLを最初に割り当てる必要があります(newDiv.innerHTML = <value>)。ここであなたのuncaught TypeErrorエラーが発生しています。

Stringの代わりにinnerHTMLにJavascriptオブジェクト(currentDealer)を割り当てることもできます。このオブジェクトのJSON文字列を出力する場合は、JSON.stringifyを使用します。それ以外の場合は、実際のフィールドを割り当てていることを確認してください。 currentDealer.data.companyID

この行のnewDiv.setAttribute("id", currentDealer.customerID);には、未定義の値であるcurrentDealer.customerIDを割り当てようとしています。要約

  1. だから、まず、値は、あなたが存在するの割り当て(console.log & console.dirはあなたの友達です)、あなたがしようとしているdata typeと一致していることを確認し、次に、構文エラー

  2. をチェック代入する

ここにデモがあります:
https://codepen.io/hydrospell/pen/KvRgvB

+0

これは非常に役立ち、そのような救命救助者です!どうもありがとうございます!ここに遅れていますが、私はこれを朝にもっと勉強します。 –

関連する問題