0

我正在获取 div 内的所有图像。

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

我正在检查 tagImage 元素是否在数组内部。

这总是返回-1,而不应该返回。

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

3 回答 3

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')
})
于 2012-08-30T15:40:26.250 回答
2

您可能正在寻找.map()

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

现在favImages将是一个src属性数组。

于 2012-08-30T15:44:42.993 回答
1

数组中的内容是 DOM 元素,您正在与 href 进行比较!

你可以试试这个,如果你坚持使用相同的功能集..

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

现在favImages是图像数组,并且$(tagImage)[0]是您的标记图像..

于 2012-08-30T15:42:26.753 回答