div内にあるすべての画像を取得しています。
var favImages = $('#divPlacesILove img').get();
tagImage要素が配列内にあるかどうかを確認しています。
これは、すべきでないときに常に-1を返します。
alert($.inArray($(tagImage).attr('src'), favImages));
$('#divPlacesILove img').get()
これにより、DOM要素の配列が返されます。
$.inArray($(tagImage).attr('src'), favImages))
DOM要素の配列で文字列を探しているので、何も見つかりません。
なんでinArray
ここで使ってるの?jQueryオブジェクトに要素useが含まれているかどうかを確認したい場合は、.is
:
$('#divPlacesILove img').is(tagImage); // true
または.filter
:
$('#divPlacesILove img').filter(function(){
return this === tagImage; // or $(this).prop('src') === $(tagImage).prop('src')
})
あなたはおそらく探している.map()
:
var favImages = $('#divPlacesILove img').map(function() {
return this.src;
}).get();
favImages
属性の配列になりますsrc
。
配列にあるのはDOM要素であり、hrefと比較しています!!
同じ関数セットを使用することを主張する場合は、これを試すことができます..
var favImages = $('#divPlacesILove img').get();
alert($.inArray($(tagImage)[0], favImages));
今favImages
は画像の配列であり$(tagImage)[0]
、タグ付けされた画像です..