質問: $(".list li").length; if (total_list > 5) { $(".list li:gt(4)").addClass("is-hide"); } $(".btn").click(function() { if ($(this).hasClass("is-open")) { $(".list li:gt(4)").addClass("is-hide"); $(this).removeClass("is-open"); } else { $(".list li.is-hide").removeClass("is-hide"); $(this).addClass("is-open"); } }); }); ``` ``` .is-hide {display: none;} .txt-close {display: none;} .is-open .txt-more {display: none;} .is-open .txt-close {display: block;} ``` 色々検索してみて、eachを使えばいいというのがわかったのですが、Javascriptの基本がわかっていないため、どのように記述していいかわかりません。ご教授いただければ幸いです。 よろしくお願いいたします。 こちらの記事を参照しました。書き方がわからず、試し方もわからなかったため、質問させていただきました。 http://www.tsunagu-tsunagaru.com/entry/jQuery-%E8%A4%87%E6%95%B0%E3%81%AE%E5%90%8C%E4%B8%80%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%92%E6%8C%81%E3%81%A4%E8%A6%81%E7%B4%A0%E3%81%AB%E5%AF%BE%E3%81%97%E3%81%A6%E5%87%A6%E7%90%86%E3%82%92%E8%A1%8C%E3%81%86
回答: たとえばこう ``` .box.hide li:nth-child(n+6){display:none;} span.hide{display:none;} ``` ``` $(function() { $('.box').addClass('hide'); $('.btn span:nth-child(2)').addClass('hide'); /* 追記:5件以下の場合は、もっと見るボタンを非表示*/ $('.box .list:not(:has(li:nth-child(6)))').next('.btn').find('span').addClass('hide'); $('.btn').on('click',function(){ $(this).closest('.box').toggleClass('hide'); $(this).find('span').toggleClass('hide'); }); }); ``` ``` 1件目の記事 2件目の記事 3件目の記事 4件目の記事 5件目の記事 6件目の記事 7件目の記事 8件目の記事 9件目の記事 10件目の記事 もっと見る 閉じる 1件目の記事 2件目の記事 3件目の記事 4件目の記事 5件目の記事 6件目の記事 7件目の記事 8件目の記事 9件目の記事 10件目の記事 もっと見る 閉じる ``` 追記 === idを付けたチェックボックスをスイッチにしていいならjavascriptもいりません ``` input.switch{position:absolute;top:-9999px;} input:checked+.box li:nth-child(n+6){display:none;} .box label span:nth-child(1){display:none;} input:checked+.box label span:nth-child(1){display:inline;} input:checked+.box label span:nth-child(2){display:none;} ``` ``` 1件目の記事 2件目の記事 3件目の記事 4件目の記事 5件目の記事 6件目の記事 7件目の記事 8件目の記事 9件目の記事 10件目の記事 もっと見る 閉じる 1件目の記事 2件目の記事 3件目の記事 4件目の記事 5件目の記事 6件目の記事 7件目の記事 8件目の記事 9件目の記事 10件目の記事 もっと見る 閉じる ```