javascript - jQuery:我如何循环遍历一组元素,只找到那些与另一个数组中的值匹配的元素?

标签 javascript jquery arrays 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])

这不起作用,因为 count在 if 语句中似乎没有匹配任何内容。

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

我在这里做错了什么?

最佳答案

使用jQuery.grepjQuery.inArray :

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

Working example

关于javascript - jQuery:我如何循环遍历一组元素,只找到那些与另一个数组中的值匹配的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4191411/

相关文章:

javascript - page.evaluate() 是否存在 phantomJS 注入(inject)漏洞?

javascript - 如何获取此动态表中最后两列的列总和

jQuery点击图片并显示一个div

javascript - jQuery - 如何将文本值写入隐藏字段供以后使用?

php - 最佳实践 : How to Structure Arrays - Standards and Naming Conventions

javascript - EaselJS Turbomedia 通过曝光表实现可逆性

javascript - 简单的javascript : arrays,和表单信息收集

javascript - anchor 标记在 gmail 附件中不起作用

javascript - 当没有匹配的后代元素时隐藏父元素

c - 删除 char 数组中的第一个标记并将其余部分保留在 C 中