2012-08-30 25 views
0

創建的數組我得到的div內的所有圖像。jquery inArray總是返回false,從jquery.get()

var favImages = $('#divPlacesILove img').get(); 

我檢查看tagImage元素是否在數組內。

這總是返回-1,當它不應該。

alert($.inArray($(tagImage).attr('src'), favImages)); 
+0

什麼是'tagImage'? –

回答

2
$('#divPlacesILove img').get() 

此返回DOM元素的陣列。

$.inArray($(tagImage).attr('src'), favImages)) 

您正在尋找DOM元素數組中的字符串,因此它不會找到任何內容。

你爲什麼在這裏使用inArray?如果你想看看jQuery對象包含一個元素的使用,.is

$('#divPlacesILove img').is(tagImage); // true 

或者.filter

$('#divPlacesILove img').filter(function(){ 
    return this === tagImage; // or $(this).prop('src') === $(tagImage).prop('src') 
}) 
1

還有什麼數組是DOM元素,以及要HREF比較!

你可以試試這個,如果你堅持使用相同的功能集..

var favImages = $('#divPlacesILove img').get(); 
alert($.inArray($(tagImage)[0], favImages)); 

現在favImages是圖像的數組,$(tagImage)[0]是你taggeed圖像..

+0

我認爲你的意思是'$(tagImage)[0]'。 'search'是一個字符串,而不是一個jQuery對象。 –

+0

是啊對不起,錯過了! –

2

你可能期待爲.map()

var favImages = $('#divPlacesILove img').map(function() { 
    return this.src; 
}).get(); 

現在favImagessrc attr的陣列ibutes。

+1

實際上你應該在'.map()'之後加上'.get()'來確保你得到一個真正的數組,而不是一個jQuery對象。 –

+0

你是對的,謝謝。 – David