Squ*_*Cat 9 javascript jquery dom jquery-selectors
我必须过滤包含两个关键数据属性的项目列表:
<li class="song" data-title="freedom" data-id="7" data-tags="tag-18-eot,tag-2-eot" data-category="1">Freedom</li>
Run Code Online (Sandbox Code Playgroud)
按类别过滤应按逻辑OR进行,但按标记过滤应按逻辑AND过滤.
使用这两个中的一个进行过滤不是问题.
我申请了,例如:
$(collection).filter('li[data-tags*="tag-50-eot"][data-tags*="tag-51-eot"]');
Run Code Online (Sandbox Code Playgroud)
按标签过滤.要么:
$(collection).filter('[data-category="1"], [data-category="2"]);
Run Code Online (Sandbox Code Playgroud)
按类别过滤.
这很好用.但是,我找不到一种方法将这两个选择器组合成一个我可以传递给filter()函数的单个查询,并且链接两个filter()调用不会产生所需的结果,因为第一个调用可能会过滤掉第二个调用的项目忘在脑后.
我发现这个问题有类似的话题,但问题有点不同,方法也是如此.
如何正确过滤这些项目?
只要您AND首先使用条件,您就应该能够通过链接获得所需的内容.例如:
var res = $('#collection li')
.filter('li[data-tags*="tag-50-eot"][data-tags*="tag-51-eot"]')
.filter('[data-category="1"], [data-category="2"]');
Run Code Online (Sandbox Code Playgroud)
小提琴这里.
| 归档时间: |
|
| 查看次数: |
306 次 |
| 最近记录: |