Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON TypeError:无法读取未定义的属性“image”_Javascript_Json - Fatal编程技术网

Javascript JSON TypeError:无法读取未定义的属性“image”

Javascript JSON TypeError:无法读取未定义的属性“image”,javascript,json,Javascript,Json,我已经做了这个JSON。但是我发现了这个错误 a +="<div class=\"back\">" + "<a href=\"[[--CatAddress, s_tk, tplid:8270--]]\"><img src=\"[[--ImgRootDir--]]resource/image/button_back.png\" width=\"85px\" /></a>" + "<

我已经做了这个JSON。但是我发现了这个错误

 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变量

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 );

这对我来说很好

我不知道如何获得节点,但是如果需要内联的话

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
});        

如果您只有2个项目,那么它找不到节点[2],并且有很多项目,但仍然无法读取“图像”。这里没有足够的上下文,我们无法告诉您错误在哪里;然而,在很多地方,您可以改进代码样式,使其更易于维护。例如,在节点中的项目上循环,并对这些索引进行操作,而不是复制/粘贴相同的函数20多次。请创建一个fiddle@mawlynx这是我所说的一个非常粗略的例子-你可以忽略大部分初始变量,它主要是用来进行评估的,而不是抱怨缺少的函数。没问题,无论你使用哪种答案,都很乐意接受。
$(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
});