jquery inArray总是返回false,从jquery.get()创建的数组

时间:2012-08-30 15:38:02

标签: jquery arrays image get

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

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

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

当它不应该返回时,它总是返回-1。

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

3 个答案:

答案 0 :(得分: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 :(得分:2)

您可能正在寻找.map()

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

现在favImages将是src属性的数组。

答案 2 :(得分:1)

数组中有什么是DOM元素,你正在与href !!

进行比较

如果你坚持使用同一套功能,你可以试试这个..

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

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