Jquery 按数据筛选一组项目

Jquery 按数据筛选一组项目,jquery,Jquery,假设您有一组项目,其中包含一些数据,如下所示: <li data-filtro="website, web app"><a href="trabajos.php?id=84"><img src="imgs/thumbs/item_tn_84.jpg" /></a></li> <li data-filtro="website, banners"><a href="trabajos.php?id=131"><i

假设您有一组项目,其中包含一些数据,如下所示:

<li data-filtro="website, web app"><a href="trabajos.php?id=84"><img src="imgs/thumbs/item_tn_84.jpg" /></a></li>
<li data-filtro="website, banners"><a href="trabajos.php?id=131"><img src="imgs/thumbs/item_tn_131.jpg" /></a></li>
<li data-filtro="publicidad"><a href="trabajos.php?id=22"><img src="imgs/thumbs/item_tn_22.jpg" /></a></li>
<li data-filtro="publicidad"><a href="trabajos.php?id=45"><img src="imgs/thumbs/item_tn_54.jpg" /></a></li>
但不知何故我不能让它工作。。。你们有两分钟时间让我睁开眼睛吗?
提前谢谢你

我知道这是一个不同的解决方案,也许这不是您想要的,但您可以使用选择器:

$('li[data-filtro*="' + valor + '"]') //this should return all the elements you want.
试试这个

$('li').each(function(){

        return $(this).data('filtro').indexOf(valor) > -1;
});

你得到了什么错误(什么是不能使它工作的意思)?valor设置为什么?它说:UncaughtTypeError:无法调用undefinedWell的方法'indexOf',由于某种原因,它不起作用。。未捕获错误:语法错误,无法识别的表达式:['data-filtro*=website']My bad,在
。修正了这个例子,现在应该可以了。它实际上会过滤与该值匹配的所有元素。非常感谢@Deleteman!谢谢你@Kanishka。我以前也试过类似的东西。。var$set=$('li').filter(函数(索引){return$(this.data('filtro').indexOf(valor)>-1;});但是我想它从来没有经过每一个元素。我尝试过你的建议,但它仍然出现了以前的indexOf异常。你是否尝试提醒$(this)。data('filtro')我编辑了我的答案,请检查,并提醒valor的值
$('li').each(function(){

        return $(this).data('filtro').indexOf(valor) > -1;
});