これが以前に尋ねられた場合は申し訳ありませんが、簡潔な答えを見つけることができないようで、jQuery の開発者はかなり軽いです。
色と日付を長い形式の数値として含む、クラスとしてさまざまなタグを含むオブジェクトのスタックがあります。
<div class="red sysdate20110712"></div>
<div class="blue sysdate20110712"></div>
<div class="blue sysdate20120314"></div>
<div class="red sysdate20110712"></div>
<div class="yellow sysdate20100813"></div>
<div class="red sysdate20100813"></div>
<div class="yellow sysdate20121001"></div>
<div class="blue sysdate20121001"></div>
私がやりたいのは、ユーザーが最初に色で、次に日付範囲でフィルターする機能を構築することです。たとえば、次のようになります。
開始日: 2010 年 10 月 3 日、終了日: 2013 年 8 月 23 日、色 = 青と赤。
少し調査した後、この投稿からの変更として機能する日付範囲があります。最終的には、最小日付と最大日付をスライダーにリンクしたいと考えています。
var minDate = 20120101;
var maxDate = 20130813;
var dateValue = [];
dateValue = $('.color-shape').filter(function(index){
var $this = $(this);
var matcharr = $this.attr('class').match(/sysdate([0-9]*)/);
if (matcharr) {
var date = parseInt(matcharr[1]);
return ((date >= minDate) && (date <= maxDate));
} else {
return false;
}
});
さらに、チェックボックスを使用したコンビネーション フィルター メソッドでカラー プロパティをフィルター処理しました。
$checkboxes.change(function(){
var filters = [];
// get checked checkboxes values
$checkboxes.filter(':checked').each(function(){
filters.push( this.value );
});
filters = filters.join(', ');
$container.isotope({ filter: filters });
});
私の質問は、これら 2 つの要素をどのように (もしあれば) 組み合わせることができるかということです。オブジェクトをフィルターに渡す必要があるため、オブジェクトを結合したり、2 つの部分からなるフィルターを実行したりする方法はありますか?
私はこの深いjQueryに少し慣れていないので、答えが目の前にある場合はお詫びします。
更新:友人の助けを借りて、私はこれをいくつか乗り越えました!基本的には、3 番目の var を作成し、配列をまとめて新しいオブジェクトにプッシュする必要があります。