【发布时间】:2012-01-18 13:44:51
【问题描述】:
实际上我有一个全局 JSON,当我尝试在循环中解析它的值时,它显示错误“未捕获的类型错误:无法读取未定义的值‘名称’”。我已经尝试了很多,但我仍然无法找到任何解决方案。
$(document).ready(function(){
var productJSON = [
{id:"1001",name:"Hopper1",image:"images/290161k.jpg"},
{id:"1002",name:"Hopper2",image:"images/290161k.jpg"},
{id:"1003",name:"Hopper3",image:"images/290161k.jpg"},
{id:"1004",name:"Hopper4",image:"images/290161k.jpg"},
{id:"1005",name:"Hopper5",image:"images/290161k.jpg"},
{id:"1006",name:"Hopper6",image:"images/290161k.jpg"},
{id:"1007",name:"Hopper7",image:"images/290161k.jpg"},
{id:"1008",name:"Hopper8",image:"images/290161k.jpg"}
];
var a=0;
for(var i=0;i<productJSON.length;i++){
var pagedisplay = '';
for(var j=0;j<2;j++){
var generatedProductDisplay = '';
generatedProductDisplay = '<div id="'+productJSON[a].id+'" class="productDiv"><a class="productLink" href="#"><center><div class="productImage"><img src="'+productJSON[a].image+'" width="100%" height="200px" alt="'+productJSON[a].name+'"></div><div><p class="productName">'+productJSON[a].name+'</p></div></center></a></div>';
pagedisplay = pagedisplay+generatedProductDisplay;
a++;
}
pagedisplay = pagedisplay+'<br/>';
$(".productDisplay").append(pagedisplay);
}
$(".productDiv").live("click",function(){
alert("Hello");
});
});
这是 HTML 代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Welcome to Nitin Agro Industries, Chhatarpur</title>
<link href="styles/main.css" type="text/css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"
type="text/javascript"></script>
<script src="productsDisplay.js" type="text/javascript"></script>
</head>
<body>
<center>
<div class="page-wrap">
<div class="centerContent">
<h1>Explore our Product Catalog</h1>
<div class="centerText">
<center>
<div class="hideShowDiv">
skdddddddddddd
</div>
<div class="productDisplay"></div>
</center>
</div>
</div>
</div>
</center>
</body>
</html>
【问题讨论】:
-
如果没有看到 json 和代码,我们怎么可能帮助您?
-
显而易见:问题是您正在访问一个不存在的属性。解决方案是要么不访问它,要么确保它存在。
-
您在内循环中增加了
a。因此,在外循环的每次迭代中,您都将a增加了两次。最终a的值将大于数组中的元素数(当i为productJSON.length / 2时)并且您尝试访问数组中不存在的索引。内循环的原因是什么?如果您需要适当的帮助,您应该说明您想要达到的目标。 -
先生,我想做的是循环只处理数组的每个元素一次,每行显示 2 个产品。所以我用了两个循环。
标签: jquery html json formatting syntax-error