jQuery:我如何遍历一组元素,只查找与另一个数组中的值匹配的元素?

Jan*_*nis 1 javascript arrays jquery return

我基本上得到了一个小函数findItem(),它应该是根据元素上的自定义data-属性找到我正在寻找的元素.

在这种情况下,这些纯数字,例如.data-slide=1.

关于如何将每个项目的数据幻灯片的值与另一个数组中包含的数据相匹配,我有点无能为力.

这是一个更具体的例子:

function findItem(count) {
    var collection = [];

    $.each(allMyLiItems, function(i, item) {

        if ( $(item).data('slide') == count ) { 
            collection.push(item);
        }

    });

    return $(collection);
}
findItem([1,3])
Run Code Online (Sandbox Code Playgroud)

这是行不通的,因为count在if语句中似乎没有任何匹配.

该页面包含4个<li data-slide="{number}">…元素,因此1,3应返回这些元素的第一个和第三个元素.

我在这做错了什么?

Jac*_*kin 5

使用jQuery.grepjQuery.inArray:

function findItem(items) {
    return jQuery.grep($('li'), function(element, index) { 
       return jQuery.inArray($(element).data('slide'), items) != -1;
    });
}
Run Code Online (Sandbox Code Playgroud)

工作实例