来自json的Alt不会显示在页面上

时间:2013-12-19 02:06:32

标签: javascript json

您好我有以下javascript:

for(i = 0; i < data.length; i++) {
    $li = $("<li>").addClass('slide');

    //images
    for(j = 0; j < data[i].images.length; j++){
        $a = $("<a>").attr("href", data[i].images[j].href).appendTo($li);

        $("<img>")
            .attr("src", data[i].images[j].src)
            .attr("alt", data[i].images[j].alt)
            .attr("usemap", "#map" + i)
        load(imgLoadFunc)
    }
}

然后在jsonp文件中我有:

[ 

{
"images": [
{
"src":"image1.jpg",
"href":"http://www.myurl.com",

"alt": "Screen 1"
        }
    ]

出于某种原因,alt不会在页面上显示任何内容。有人可以帮忙吗?

由于

3 个答案:

答案 0 :(得分:1)

1)您是否错过了作为示例提供的文件中的结尾“}”?如果是这样,那就是你的问题。

2)每当您制作JSON文件时,请将输出提供给JSONLint。如果你知道你的JSON是好的,你会为自己省去很多麻烦和疯狂的追逐。

答案 1 :(得分:0)

我认为你的json正在发生一些事情。当我尝试这个时,它工作正常:

var data = [
    {
    "images": 
        {
        "src":"image1.jpg",
        "href":"http://www.myurl.com",

        "alt": "Screen 1"
        }
    },
    {
    "images": 
        {
        "src":"image2.jpg",
        "href":"http://www.myurl.com",

        "alt": "Screen 2"
        }
    }
];
alert(data[1].images.alt);

答案 2 :(得分:0)

更新:问题在于你的json

请检查这个json,它在jslint上测试并且工作正常

var data = [{ "images": [{"src" : "image1.jpg", "href" : "http://www.myurl.com", "alt" : "Screen 1" }, {"src" : "image2.jpg", "href" : "http://www.myurl2.com", "alt" : "Screen 2" }] } ];

更新了JSFiddle:http://jsfiddle.net/raunakkathuria/2aFp2/2/


这适用于旧的json数据:如果您的数据是您正在访问的json变量,那么您需要更改逻辑,json没有length属性,因此data.length不正确,如果您的图像在数据包含您想要的所有图像data.images.length

请检查工作小提琴http://jsfiddle.net/raunakkathuria/2aFp2/1/