2012-11-26 22 views
1

我總是和麻煩, 我加載一個文件,AJAX:得到所有圖像的HTML字符串

$.ajax({ 
    url: fullHref, 
    success : function(result) { 
     console.log(fullHref+" was loaded via AJAX"); 
     saveImages(result); 
    } 
});  

,並試圖通過各種圖像result迭代:

function saveImages(file){ 
    console.log("savesImages enterd"); 
    $(file).find('img').each(function(){ 
     console.log("The file has this image : "+$(this).attr('src')); 
    }); 
} 
} 

我也試過:

  • $('img',file)
  • $('img',$(file))
  • $('img',$(file).html())

然而,它不會進入循環。

有什麼建議嗎? 我使用的是Chrome,而我不是想使用正則表達式。

+0

對不起忘了複製函數聲明 –

+0

你確定'file'包含(有效的)HTML嗎? –

+0

您是否從AJAX調用中獲得預期的字符串? –

回答

6

嘗試filter()而不是發現的:

$(file).filter('img').each(function() { /* ... */ }); 

find()低頭DOM樹是不是你想要什麼,如果字符串中的img元素都在根級別。

+0

那麼這個解釋很多..謝謝你Rory這確實進入了循環! –

+0

@Blowsie你如何解決你的小提琴中的語法錯誤,然後嘗試再次嘗試爭辯我呢?其實讓我:http://jsfiddle.net/kvgUH/3/ –

+0

那麼爲什麼傑克在上面張貼的鏈接工作? –

2

只要創建一個新節點並設置它的innerHTML即可。

$('<span></span>').html(file).find('img').each(...