内部 div 内にタグを持つ投稿リンクのリストがあります。ユーザーは 3 つの異なるリストから選択して、投稿をフィルタリングします。
基本的に私が実現したいのは、ユーザーが選択した 3 つのリストの内容に基づくフロント エンド フィルタリングです。
ロジックは基本的に次のようにしたい:IF post-tags-list has 1+ item from list1 AND has 1+ item from list2 AND has 1+ item from list3, THEN keep the post
IF
以下は私が最初に持っているものですが、現在の方法では、誰かがリストの1つから何も選択しない場合、説明するために大量のステートメントが必要になります. おそらくスイッチを使用すると簡単になることはわかっていますが、私のロジックが正しいかどうかは完全にはわかりません。
$(".post-link").each(function(index){
//Get all the post's terms from its hidden tag div and store in an array
var terms = $(this).find(".tags").attr('class').split(" ");
//Cut off the first two items ('hidden' and 'tags')
terms.splice(0,2);
//If interests is set
if(typeof interests[0] != 'undefined'){
var found = 0;
var keep = false;
//For each of the selected interests...
$.each(interests, function(index, value){
//For each of the posts terms
$.each(terms, function(index2, value2){
//If the posts has a selected interest, keep it
if(value == value2){ keep=true;}
});
});
//After all that, if we couldn't find anything...
if(keep!=true){
//Hide the post (.post-link)
$(this).hide();
}
}
//THE ABOVE ONLY ACCOUNTS FOR IF SOMETHING IS SELECTED FOR THE FIRST LIST
//I'M NOT SURE HOW I WOULD IMPLEMENT THIS ACROSS TWO OTHER LISTS
});
さらに情報が必要な場合はお知らせください。
ありがとう!