2017-03-07 17 views
1

私は自分の.jsファイル内に作成したJSONオブジェクトを表示するためにDOMメソッドを使用しようとしています。 これは私のコードがどのように見えるもので、動作しません。DOMメソッドを使用したJSONのHTML(JavaScript)への出力

function JSONMethod(){ 
    carInfo = {"make":"BMW", "model":"M5","mear":"2017","color":"Black"}; 
    myJSON = JSON.stringify(carInfo); 
    localStorage.setItem("theJSON", myJSON); 

    text = localStorage.getItem("theJSON"); 
    obj = JSON.parse(text); 

    for(var i = 0; i < obj.length; i++) 
    { 
     var para = document.createElement("li"); 
     var node = document.createTextNode(obj[i]); 
     para.appendChild(node); 
     var element = $("display"); 
     element.appendChild(para); 
    } 
} 

$関数は正確にあなたが保存され、その後、localStorageからの読み取り、または文字列化してから、オブジェクトを再解析、なぜ私はわからないんだけど、この

function $(theId){ 
    return window.document.getElementById(theId); 
} 
+1

1)あなたはおそらく '$( '#表示)'またはいくつかの他の**有効な**セレクタを意味しました。 2)オブジェクトには 'length'プロパティがありません。 ['for..in'ループ](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for...in)を試してください。 3)すべてのローカルストレージのものはあなたの質問に完全に余計なものです – Phil

+0

私は実際には$( "display")を使っていますが、これは動作しているようです。私は人々が "#"を追加すると言っているコメントを見ている。なぜそうなのか? $関数は単にwindow.document.getElementById(theId)を返す – Programmer

+0

私はあなたがjQueryを使っていると思っていたことを謝ります。 '$ 'が定義されていることに頼ることはお勧めできません。 ChromeとFirefoxのみたいなもののようです〜http://stackoverflow.com/questions/22244823/what-is-the-dollar-sign-in-javascript-if-not-jquery – Phil

答えて

1

です。上記のコードの大部分は、.textContentArray#forEachのような構造体を使用して大幅に削除または縮小できます。

ただし、forループとインデックスを使用して通常のオブジェクトを反復処理することはできません。そのプロパティのすべてを取得し、それらで何かを行うには、組み込みのObject.keysのような関数を使用する必要があります。

function JSONMethod (carInfo) { 
 

 
    Object.keys(carInfo).forEach(function (k) { 
 
    var li = document.createElement("li") 
 
    li.textContent = k + ': ' + carInfo[k] 
 
    this.appendChild(li) 
 
    }, document.getElementById('display')) 
 

 
} 
 

 
JSONMethod({ 
 
    "make": "BMW", 
 
    "model": "M5", 
 
    "mear": "2017", 
 
    "color": "Black" 
 
})
<ul id="display"></ul>

+0

Ohhhh ok ok yeah私がw2schools.comから手に入れたものです。そして、私は他のリンクを実現し発見したので、記憶は必要ではありません。私はあなたの答えで私のコードを並べ替えると、それが動作するかどうかを確認しようとします!ありがとう! – Programmer

関連する問題