2013-12-19 21 views
-1

您好我有以下的javascript:Alt键并没有在网页上显示

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上没有显示任何内容页。有人可以帮忙吗?

谢谢

+0

你在哪里添加'$ li'和图像传递到文档图像(通过'追加“或类似)? – Phil

回答

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

我不明白这是如何回答OP报告的问题。 – 2013-12-19 02:28:35

+0

我认为这个答案指向有效的JSON与给定的代码一起工作。在原文中,他似乎错过了关闭“}”。 –

+0

这样数据将有长度属性,普通的json没有长度,json是有效的。缺少的}是因为它没有像@marb –

1

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

2)无论何时制作JSON文件,请将输出送入JSONLint。如果你知道你的JSON是好的,你会为自己节省很多头痛和疯狂的追逐。

+0

所说的那样被复制,“}”在代码中没有丢失,我只是在这里放置一个块来完成该部分。 – marb

+0

不在代码中。在JSON中。您的JSON是否通过了JSONLint? –

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没有长度属性,所以data.length是不对的,如果你的数据图像包含了所有你想要然后你做data.images.length

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

+0

我正在使用'data.images.lenth',请再次检查我的代码。对不起,你的例子不起作用.. – marb

+0

我在说关于data.length,因为json对象没有长度属性。你可以检查(alert/console.log)是否进入第一个循环?在我的例子中什么不起作用?它的装载罚款给我。 –

+0

我没有看到您的示例中显示的图像也正在显示。是的,警报显示每个ALT值。我的,但我必须检查json文件。谢谢 – marb