前提・実現したいこと
「もっと見る」を複数の要素に追加したいです。
「もっと見る」が「a.link」3つ以上要素があれば表示されるようにしたいのですが
上手く動作しませんでした。
どなたかわかる方がおりましたらお手数をおかけし申し訳ございませんが教えていただけないでしょうか
発生している問題・エラーメッセージ
「もっと見る」ボタンが設定した要素の数で上手く消えてくれませんでした
該当のソースコード
<div class="link"> <div class="link_wrap"> <a href="" class="link">テキスト</a> <a href="" class="link">テキスト</a> <a href="" class="link">テキスト</a> <a href="" class="link">テキスト</a> <a href="" class="link">テキスト</a> </div> <div class="more"> <p class="btn">もっと見る</p> </div> </div> <div class="link"> <div class="link_wrap"> <a href="" class="link">テキスト</a> <a href="" class="link">テキスト</a> <a href="" class="link">テキスト</a> </div> <div class="more"> <p class="btn">もっと見る</p> </div> </div> <div class="link"> <div class="link_wrap"> <a href="" class="link">テキスト</a> <a href="" class="link">テキスト</a> </div> <div class="more"> <p class="btn">もっと見る</p> </div> </div> <style> .hidden { opacity: 0; height: 0; margin: 0; pointer-events: none; } </style> <script> $(document).ready(function() { var num = 3; $('.link_wrap a:nth-child(n + ' + (num + 1) + ')').addClass('hidden'); $('.more').on('click', function() { $(this).prev().children('a.hidden').slice(0, num).removeClass('hidden'); if ($(this).prev().children('a.hidden').length == 1) { $(this).hide(); } }); $('.link_wrap a').each(function(index) { if (index > num) { $(this).parent().next('.more').hide(); } }); });
回答2件
あなたの回答
tips
プレビュー