2014-10-08 303 views
0

我已經制作了這個JSON。但我發現這個錯誤JSON TypeError:無法讀取未定義的屬性'image'

a +="<div class=\"back\">" 
       + "<a href=\"[[--CatAddress, s_tk, tplid:8270--]]\"><img src=\"[[--ImgRootDir--]]resource/image/button_back.png\" width=\"85px\" /></a>" 
       + "</div>" 

       + "<div class=\"bg\">" 
       + "<img src=\"[[--ImgRootDir--]]resource/image/Film_Level.png\" width=\"590px\" height=\"600px\" />" 
       + "</div>" 

       + "<div class=\"lvle\">" 
       + "<table width=\"84%\">" 
       + "<tr>" 
       + getSubsHTML(nodes[0].image, jsonStage.indexOf("2014_2012.json_0_0"),0) 
       + getSubsHTML(nodes[1].image, jsonStage.indexOf("2014_2012.json_0_1"),1) 
       + getSubsHTML(nodes[2].image, jsonStage.indexOf("2014_2012.json_0_2"),2) 
       + getSubsHTML(nodes[3].image, jsonStage.indexOf("2014_2012.json_0_3"),3) 
       + getSubsHTML(nodes[4].image, jsonStage.indexOf("2014_2012.json_0_4"),4) 
       + "</tr>" 
       + "<tr>" 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_0")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_1")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_2")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_3")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_4")) 
       + "</tr>" 
       + "<tr>" 
       + getSubsHTML(nodes[5].image, jsonStage.indexOf("2014_2012.json_0_5"),5) 
       + getSubsHTML(nodes[6].image, jsonStage.indexOf("2014_2012.json_0_6"),6) 
       + getSubsHTML(nodes[7].image, jsonStage.indexOf("2014_2012.json_0_7"),7) 
       + getSubsHTML(nodes[8].image, jsonStage.indexOf("2014_2012.json_0_8"),8) 
       + getSubsHTML(nodes[9].image, jsonStage.indexOf("2014_2012.json_0_9"),9) 
       + "</tr>" 
       + "<tr>" 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_5")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_6")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_7")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_8")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_9")) 
       + "</tr>" 
       + "<tr>" 
       + getSubsHTML(nodes[10].image, jsonStage.indexOf("2014_2012.json_0_10"),10) 
       + getSubsHTML(nodes[11].image, jsonStage.indexOf("2014_2012.json_0_11"),11) 
       + getSubsHTML(nodes[12].image, jsonStage.indexOf("2014_2012.json_0_12"),12) 
       + getSubsHTML(nodes[13].image, jsonStage.indexOf("2014_2012.json_0_13"),13) 
       + getSubsHTML(nodes[14].image, jsonStage.indexOf("2014_2012.json_0_14"),14) 
       + "</tr>" 
       + "<tr>" 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_10")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_11")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_12")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_13")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_14")) 
       + "</tr>" 
       + getSubsHTML(nodes[15].image, jsonStage.indexOf("2014_2012.json_0_15"),15) 
       + getSubsHTML(nodes[16].image, jsonStage.indexOf("2014_2012.json_0_16"),16) 
       + getSubsHTML(nodes[17].image, jsonStage.indexOf("2014_2012.json_0_17"),17) 
       + getSubsHTML(nodes[18].image, jsonStage.indexOf("2014_2012.json_0_18"),18) 
       + getSubsHTML(nodes[19].image, jsonStage.indexOf("2014_2012.json_0_19"),19) 
       + "</tr>" 
       + "<tr>" 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_15")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_16")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_17")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_18")) 
       + getStageHTML(jsonStage.indexOf("2014_2012.json_0_19")) 
       + "</tr>" 
       + "</table>" 
       + "</div>" 

       + "<div class=\"left\">" 
       + "<img src=\"[[--ImgRootDir--]]resource/image/Camera_kiri.png\" width=\"150px\" />" 
       + "</div>" 
       + "<div class=\"right\">" 
       + "<img src=\"[[--ImgRootDir--]]resource/image/Camera_kanan.png\" width=\"150px\" />" 
       + "</div>"; 

,這是JSON

nodes: [ 
{ 
id: "2014_2012.json_0_0", 
image: "_1396278834_af_org.png", 
question: "1. What is this ?", 
answer: "EXX", 
hint: "asdadsadsadasdasdaads" 
}, 
{ 
id: "2014_2012.json_0_0", 
image: "_1396278834_af_org.png", 
question: "1. What is this ?", 
answer: "EXX", 
hint: "asdadsadsadasdasdaads" 
}, 
+0

如果你只有2個項目,那麼它不能找到節點[2]和 – mplungjan 2014-10-08 07:53:28

+0

我有很多項目,但仍然無法讀取'圖像' – mawlynx 2014-10-08 07:57:12

+2

這裏沒有足夠的上下文讓我們告訴你你的錯誤在哪裏;然而,有很多地方你可以改進你的代碼風格,以便於維護。例如,循環遍歷節點中的項目,並操作這些索引,而不是複製/粘貼相同的函數20多次。 – TML 2014-10-08 08:00:23

回答

0

好了,做了一些假設,但這個工作:http://jsfiddle.net/sp1nf731/3/

您是否正確引用您的JSON變量?

var x = { nodes: [ 
{ 
id: "2014_2012.json_0_0", 
image: "_1396278834_af_org.png", 
question: "1. What is this ?", 
answer: "EXX", 
hint: "asdadsadsadasdasdaads" 
}, 
{ 
id: "2014_2012.json_0_0", 
image: "_1396278834_af_org.png", 
question: "1. What is this ?", 
answer: "EXX", 
hint: "asdadsadsadasdasdaads" 
} 
] }; 

console.log(x.nodes[1].image); 

這對我工作得很好

+0

謝謝你的工作 – mawlynx 2014-10-08 08:25:11

+0

沒問題,接受你使用的答案會很棒。 – byrnedo 2014-10-08 08:39:33

0

我不知道你是怎麼得到的節點,但如果直列你需要

var nodes=[ 
    { .... }, 
    { .... }, 
    { .... } 
]; // no comma on the last 

這裏有一個建議,縮短jQuery的

代碼
$(function() { 
    var $rowa=$("<tr/>"), $rowb=$("<tr/>"), 
    $.each(nodes,function(i,node) { 
    if (i>0 && i%5==0) { 
     $("#table1 tbody").append($rowa).append($rowb); 
    } 
    $rowa.append(getSubsHTML(node.image, jsonStage.indexOf("2014_2012.json_0_"+i),i); 
    $rowb.append(getStageHTML(jsonStage.indexOf("2014_2012.json_0_"+i)); 
    });   
    // here you may test if i%5 !=0 and add the last rows 
});   
相關問題