2013-12-19 17 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