9

次のマークアップを持つ要素がいくつかあります。

<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>

そして、これらを参照する 2 つの jQuery セレクター:

$cats = $('div[data-category="mycategory"]');
$features = $('div[data-features="myfeature"]');

これらの 2 つのセレクターを、両方の参照が true のセレクターにマージするにはどうすればよいですか? div の 1 と 3 のみを含むが、既存の $cats と $features を使用するセレクターになりたい - マークアップに基づいて別のセレクターを構築しない

4

2 に答える 2

14

連合:

$('div[data-category="mycategory"], div[data-features="myfeature"]')...

これにより、属性が である[data-category]属性がmycategory あるすべての div が取得され[data-features]ますmyfeature

これは、次のように複数のセレクターを使用して実行できます。$one.add($two)

交差点:

$('div[data-category="mycategory"][data-features="myfeature"]')...

これにより、属性が であり、属性があるすべてdiv が取得されます。[data-category]mycategory [data-features]myfeature

これは、次のように複数のセレクターを使用して実行できます。$one.filter($two)

于 2013-09-23T18:42:03.857 に答える
3
$.fn.intersect=function(jq){
  return $(this).filter(jq);
}

それで :

$cats.intersect($features);
于 2014-05-07T22:49:28.750 に答える