2016-12-09 6 views
0

私は別の学生から次の配列を受け取りました。私の仕事はHTMLで表示することです。JSON配列をinnerHTMLに表示

私はここに掲載されている例と他のサイトに従っています。これは私の最初の試みです。

とにかく、私は必要な値を呼び出しましたが、表示されません。私が得ることができるどんな助けにも感謝します。

これはスクリプトブロックであり、HTMLの一部を添付します。現在のところ、jsonは終了タグの前に位置しています。あなたの変数heightweight以来

<script> 

     var height = {"height" : "1.76m"}; 
     var weight = {"weight" : "65kg"}; 
     var bmi = {weight/(height*height)}; 
     var cholesterol = {"cholesterol" : "26mmol/d"}; 
     var glucose ={"glucose" : "100mg/dl"}; 
     var pressure = {"pressure" : "120/80"}; 
     var pulseRate = {"pulse rate" : "80bpm"}; 

     window.onload = function() { 

     obj = JSON.parse(height, weight, bmi, cholesterol, glucose, pressure, pulseRate); 

     document.getElementById("hgt").innerHTML = obj.height[1]; 
     document.getElementById("wgt").innerHTML = obj.weight[1]; 
     document.getElementById("bmi").innerHTML = obj.bmi[1]; 
     document.getElementById("chol").innerHTML = obj.cholesterol[1]; 
     document.getElementById("gluc").innerHTML = obj.glucose[1]; 
     document.getElementById("bp").innerHTML = obj.pressure[1]; 
     document.getElementById("rpr").innerHTML = obj.pulseRate[1]; 

     }; 

</script> 

     <div class="col-xs-2"> 
     <h3 class="heading">Today</h3> 
     <img class="picture2" src="images/icon-height.png" /> 
     <div class="caption"> 
     <h2 id="hgt"></h2> 
     <p>height</p> 
     </div> 
+0

ここにはJSONオブジェクトはありません。だから、それらを解析する必要はありません。 JSON.parse()の実際のパラメータも参照してください。さらに、bmiオブジェクトにはdoublepointがありません。 – Lain

+0

[JSON](http://json.org)は定義上の文字列です。他のすべてのタイプは、まさにそれらのものです。 JSONを解析してオブジェクトに変換したり、stringifyでJSONを作成することができます。 –

+0

私はあなたが定義した変数を定義しようとしていましたが、エラーが出ます: 'Uncaught SyntaxError:Unexpected token /'。エラーは3行目から来ています。したがって、スクリプトは 'var bmi = {weight /(height * height)};行でクラッシュしています; – akrys

答えて

0

...彼らは有効なJSONオブジェクトであるため、解析する必要はありません、あなたはこのようなobjを割り当てることによって、自分自身にいくつかの時間を節約することができます:

var obj = { 
    height: "1.76", 
    weight: "65kg", 
    ..., 
    bmi: //your calculation here! 
}; 

document.getElementById("yourid").innerHTML = obj.weight; 
... 

ので、 JSONオブジェクトでkeyvalueのペアを使用する場合は、object.keyまたはobject['key']を使用して値にアクセスできます。

obj.weight[1]を使用して値にアクセスしようとしているので、第2の値を{ "weight" : "67kg" }にしようとしていると思います。しかし、これは有効なオブジェクトなので、weightがキーで、"67kg"が値です。したがって、オブジェクト(obj.weight[1])のインデックス1の値を取得しようとしています。これを行うには、オブジェクトにキー1があるか、配列でなければなりません。私はあなたに説明しようとしているものを得ることを願っています。

それは多くの簡単にするためにあなたのvar heightがキーheightを持つオブジェクトですので、あなただけ、動作していないobj.height[1]の代わりにheight.heightを使用することができます。しかし読みやすさのために私はスニペットからフォーマットを提案します。

+1

ありがとう、そんなに! – Indya

+0

問題はありませんが、変数 'pulseRate'と' {"pulse rate": "80bpm"} 'に設定されていることを確認するだけです。その場合、キーはスペースで ''脈拍数 ''であるので、これを行うことはできません: 'var obj = {脈拍数:" 80bpm "、体重:" 65kg "}'、あなたはエラーを回避するために名前のスペースを削除してください。このようにしたい場合は、単に 'pulserate'などに変更してください:' obj.pulserate' – JoschuaSchneider

関連する問題