2017-05-17 63 views
1

我想保存多個圖像的URL(src),但由於某種原因,我的代碼沒有完成任務。

$('img')返回一個圖像數組,所以邏輯上(或者所以我認爲)forEach循環應該記錄單個圖像(或URL,如果我添加.attr('src'))。但是,這不起作用。爲什麼?

這裏是代碼的相關部分:

function fetchURL() { 
    let imgURLs = [], 
     imgs = $('img'); 

    imgs.forEach(img => { 
     imgURLs.push(img.attr('src')); 
    }); 

    console.log(imgURLs); 
} 
+0

發生了什麼錯誤? – funcoding

+1

.forEach是jquery?我想jQuery的每個功能。 – daremachine

+0

調試的第一步 - **開發人員**工具控制檯 - 它會告訴你爲什麼它不工作 –

回答

2

使用這個代替:

var imgs = document.getElementsByTagName("img"); 
 
    var imgSrcs = []; 
 

 
    for (var i = 0; i < imgs.length; i++) { 
 
     imgSrcs.push(imgs[i].src); 
 
    } 
 

 
    console.log(imgSrcs);
<img src="https://www.nationalgallery.org.uk/server.iip?FIF=/fronts/N-6600-00-000037-WZ-PYR.tif&CNT=1&JTL=1,0"> 
 
<img src="https://www.nationalgallery.org.uk/server.iip?FIF=/fronts/N-6600-00-000037-WZ-PYR.tif&CNT=1&JTL=1,0"> 
 
<img src="https://www.nationalgallery.org.uk/server.iip?FIF=/fronts/N-6600-00-000037-WZ-PYR.tif&CNT=1&JTL=1,0">

0

我沒有forEach前工作,但在jQuery中您可以使用.each()

function fetchURL() { 
    var imgURLs = [], 
     imgs = $('img'); 

    imgs.each(function(){ // or $.each(imgs , function(){ 
     var This_Src = $(this).attr('src'); 
     imgURLs.push(This_Src); 
    }); 

    console.log(imgURLs); 
} 
+0

img是什麼?我認爲這應該是$(this) – daremachine

+0

@daremachine我更新了答案,而你輸入你的評論:-) –

+0

哦,但這似乎現在工作:) – daremachine

1

forEach是一個JavaScript原生功能,同時$('img')返回一個jQuery對象。

如果您想使用它,請使用$('img').toArray();,它可以與forEach一起使用。

其次改變imgURLs.push(img.attr('src'));imgURLs.push($(img).attr('src'));香草沒有JavaScript的attr

function fetchURL() { 
 
    let imgURLs = [], 
 
     imgs = $('img').toArray(); 
 

 
    imgs.forEach(img => { 
 
     imgURLs.push($(img).attr('src')); 
 
    }); 
 

 
    console.log(imgURLs); 
 
} 
 

 
fetchURL();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<img src="sdfsdf" /> 
 
<img src="32442sdf" /> 
 
<img src="sdfs343sdfds" />

相關問題