我正在获取 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 对象是否包含元素,请使用.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]
是您的标记图像..