2011-10-22 459 views
0

在jquery ui對話框中,我正在通過ajax加載圖像表。一旦內容被加載到對話框窗口中,如果我嘗試這樣做,我會在控制檯中得到未定義的內容。JQuery提醒通過ajax加載的圖像的src。未定義的錯誤

console.log($('#imageTable tbody tr td img').attr('src')) 

圖像在那裏,但我只是無法閱讀它們。該代碼應該顯示第一個td中的圖像的src。如果我在DOM中已經有了與圖像相同的表格,而不是通過ajax,那麼該命令就可以工作。我假設我需要一種實時的方式來獲取此內容,因爲它是通過ajax獲取的,並且最初並不在DOM中。我該怎麼做呢。

更新的代碼 這是我

$featured = $('<div id="galleryImages"></div>'); 
$('#imageTable tbody tr td img').each(function(){ 
    var imagesrc = $(this).attr('src'); 
    $featured.append('<img src="'+imagesrc+'" />') 
}); 
console.log($featured); 
+1

你是否在等待ajax命令完成?這是一個異步操作,因此您必須掛鉤成功處理程序以瞭解它何時完成,因此您可以檢查它插入的內容。 – jfriend00

+0

@ jfriend00不,我等到ajax被加載。內容在那裏,因爲我可以看到它。我更新了我的問題以顯示代碼以獲取所有圖像 – Pinkie

+0

我不確定你瞭解我的ajax問題。你是否從ajax成功處理程序調用此代碼?你能顯示你的ajax代碼嗎?如果你的代碼在ajax調用實際完成之前運行一點,那麼它就不會找到任何東西。 – jfriend00

回答

3

你可以嘗試$("#imageTable").find("img").attr("src");

它會找到表中的任何圖像。

+0

偉大的,這在控制檯工作...但我怎麼應用這個每個功能,我必須得到所有圖像'$ featured = $('

'); $( '#imageTable TBODY TR TD IMG')每個(函數(){ \t \t \t變種imagesrc = $(本).attr( 'SRC'); \t \t \t \t $ featured.append( '' ) \t \t \t}); console.log($ featured)' – Pinkie

+0

我更新了我的問題以顯示此代碼。 – Pinkie

+0

所有你需要做的事我會在我發佈的例子中使用'.each()'而不是'.attr()'。如果你需要等待Ajax完成,你可以把它放在'onSuccess'處理程序中。 – btleffler

相關問題