我有许多带有以下标记的元素:
<div id="div1" data-category="mycategory" data-feature="myfeature"></div>
<div id="div2" data-category="anothercategory" data-feature="myfeature"></div>
<div id="div3" data-category="mycategory" data-feature="myfeature"></div>
<div id="div4" data-category="mycategory" data-feature="anotherfeature"></div>
两个引用这些的jQuery选择器:
$cats = $('div[data-category="mycategory"]');
$features = $('div[data-features="myfeature"]');
如何将这两个选择器合并为一个BOTH引用为真的?我想最终得到一个只包含div 1和3的选择器,但是使用已经存在的$ cats和$ features - 而不是基于标记构建另一个选择器
答案 0 :(得分:13)
$('div[data-category="mycategory"], div[data-features="myfeature"]')...
这将获得所有div [data-category]
属性为mycategory
或 [data-features]
属性为{{1} }。
这可以通过多个选择器$one.add($two)
myfeature
这将获得所有div 两者 $('div[data-category="mycategory"][data-features="myfeature"]')...
属性为[data-category]
且 mycategory
属性为{{1} }。
这可以通过多个选择器$one.filter($two)
答案 1 :(得分:2)
$.fn.intersect=function(jq){
return $(this).filter(jq);
}
然后:
$cats.intersect($features);