データ属性でタブ切り替え
新着情報などで、すべての記事とカテゴリーごとの記事一覧を出すやり方。
タブにデータ属性をつけて、各記事にはカテゴリーのクラスを付与。タブをクリックしたらそのカテゴリーの記事にactiveをつける(初期状態はすべてにactiveがつく)
<div class="newstabs">
<div class="newstab active" data-cat="all">すべて</div>
<div class="newstab" data-cat="news">お知らせ</div>
<div class="newstab" data-cat="recruit">採用</div>
<div class="newstab" data-cat="media">メディア</div>
</div>
<div class="newslist">
<div class="newslist_item news active">
<a href="../images/newspdf/221031_MK.pdf" target="_blank">
<div class="txt">
<time>2022.10.31</time>
<span>お知らせ</span>
<p>営業時間に関するお知らせ</p>
</div>
<div class="arw">
<img src="../images/page/news_arw.svg">
</div>
</a>
</div>
<div class="newslist_item news active">
<a href="../images/newspdf/220730_press release.pdf" target="_blank">
<div class="txt">
<time>2022.03.24</time>
<span>お知らせ</span>
<p>新商品に関するお知らせ</p>
</div>
<div class="arw">
<img src="../images/page/news_arw.svg">
</div>
</a>
</div>
<div class="newslist_item recruit active">
<a href="#">
<div class="txt">
<time>2020.07.30</time>
<span>採用情報</span>
<p>採用に関するお知らせ</p>
</div>
<div class="arw">
<img src="../images/page/news_arw.svg">
</div>
</a>
</div>
<div class="newslist_item media active">
<a href="#">
<div class="txt">
<time>2020.07.30</time>
<span>メディア掲載</span>
<p>メディア掲載に関するお知らせ</p>
</div>
<div class="arw">
<img src="../images/page/news_arw.svg">
</div>
</a>
</div>
</div>
$(function () {
$('.newstab').on('click', function () {
$('.newstab').removeClass('active');
$('.newslist_item').removeClass('active');
$(this).addClass('active');
var $cat = $(this).attr("data-cat");
if ($cat == "all") {
$(".newslist_item:not(.nopost)").addClass('active');
} else {
$(".newslist_item." + $cat).addClass('active');
}
});
});