これ何て呼びますか Part2

<div>
<ul>
<li>その1</li>
<li>その2</li>
<li>その3</li>
</ul>
</div>

とあるときに、「今どのページにいるかによって」リストの順序を変更する方法はありますか?

・全部で3ページある
・この3項目が常に上部に表示されている
・「その2」のページにいるときは、その2を一番最初に表示したい
・「その3」のページにいるときは、その3を一番最初に表示したい

リストの入れ替えをcssで指示することはできるのでしょうか?

A 回答 (1件)

ページURLからどのページかを識別する仕組みを用意する


それぞれの <li> にクラス名をつける
ページに対応したクラス名の <li> があれば先頭に並べ替える
というスクリプトを組む

例)
<ul>
<li class=top1>...
<li class=top2>...
<li class=top3>...
</ul>
<script>
var path = location.pathname;
var topc = [[/page2/,"li.top2"], [/page3/,"li.top3"]].find(x=>x[0].test(path));
if (topc) {
var li = document.querySelector(topc[1]);
li.parentNode.insertAdjacentElement('afterbegin', li);
}
</script>
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
スクリプトはさっぱりですがいただいた例を参考に調べてみます。

お礼日時:2022/09/13 16:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報