为什么我得到的typeError值为null但是在我的firebug中我可以说有值而不是null,是什么问题?
这是我的ajax代码:
$.ajax({
url: 'get-products.php',
type: 'post',
datatype: 'json',
data: { category: $('.category').val().trim(), keyword: $('.keyword').val().trim() },
success: function(data){
var toAppend = '';
toAppend += '<thead><th>Product Name</th><th>Image</th><th>Price</th><th>Weight</th><th>ASIN</th><th>Category</th></thead>';
if(typeof data === "object"){
for(var i=0;i<data.length;i++){
toAppend += '<tr><td>'+
data[i]['product_name'][0]+'</td><td><img src="'+
data[i]['image'][0]+'" alt=""></td><td>'+
data[i]['price'][0]+'</td><td>'+
data[i]['weight']+'</td><td>'+
data[i]['asin'][0]+'</td><td>'+
data[i]['category'][0]+'</td></tr>';
}
$('.data-results').append(toAppend);
}
}
});
这是我的PHP代码,我知道这是有效的:
foreach($xml->Items->Item as $item){
$items_from_amazon[] = array(
'asin'=>$item->ASIN,
'product_name'=>$item->ItemAttributes->Title,
'image'=>$item->SmallImage->URL,
'price'=>$item->ItemAttributes->ListPrice->FormattedPrice,
'category'=>$item->ItemAttributes->ProductGroup,
'weight' => (string) $item->ItemAttributes->PackageDimensions->Weight.' lbs');
}
echo json_encode($items_from_amazon);
?>
这是我的萤火虫的结果:
这是我的样本输出,如果图像为空则没有显示图像,即使是像图像中仍然是空结果,我仍然可以显示结果吗
答案 0 :(得分:3)
在萤火虫图像中,它看起来表示图像在第7个索引处为空。 因此,如果您执行data.image [index]您正在访问无效的内存位置。 image属性必须指向某个东西。
for(var i=0;i<data.length;i++){
//You can save default image in a global variable, hidden div... it is up to you.
var img ;
if(data[i]['image'] === null){
img = defaultImage ;
}
else
{
img = data[i]['image'][0];
}
toAppend += '<tr><td>'+
data[i]['product_name'][0]+'</td><td><img src="'+
img +'" alt=""></td><td>'+ //use img here
data[i]['price'][0]+'</td><td>'+
data[i]['weight']+'</td><td>'+
data[i]['asin'][0]+'</td><td>'+
data[i]['category'][0]+'</td></tr>';
}
你希望得到这个想法。