1

URL#内のを検出し、検出された場合はアクティブなクラスを要素に追加するJavaScript コードをここに用意しました。ただし、nth-child セレクターを使用した 3 つのケースでは、何も起こらず、その理由がわかりません。

switch (window.location.hash) {
    case "#MAIN":
        $('#tab li a.nav:first').addClass('act').siblings().addClass('inact');
        break;
    case "#sg2":
        $('#tab li a.nav:nth-child(2)').addClass('act').siblings().addClass('inact');
        alert($('#tab li a.nav:nth-child(2)').className);
        break;
    case "#sg3":
        $('#tab li a.nav:nth-child(3)').addClass('act').siblings().addClass('inact');
        break;
    case "#zycsg":
        $('#tab li a.nav:nth-child(4)').addClass('act').siblings().addClass('inact');
        break;
    default:
        $('#tab li a.nav:first').addClass('act').siblings().addClass('inact');
}

この問題を解決するにはどうすればよいですか?

HTML

<div id="tab">
    <ul>
        <li class="menuItem2"><a href="#MAIN" class="nav" onclick='window.history.pushState("", "", "/#MAIN");'>Home-1</a></li>
        <li class="menuItem2"><a href="#sg2" class="nav" onclick='window.history.pushState("", "", "/#sg2");'>HDCYG?</a></li>
        <li class="menuItem2"><a href="#sg3" class="nav" onclick='window.history.pushState("", "", "/#sg3");'>Home-3</a></li>
        <li class="menuItem2"><a href="#zycsg" class="nav" onclick='window.history.pushState("", "", "/#zycsg");' style="width:300px;">Zinteen youtube collection</a></li>
    </ul>
</div>
4

2 に答える 2

3

セレクターが間違っています。どちらかである必要があります

$('#tab a.nav:nth-child(n)')

また

$('#tab li:nth-child(n) a.nav')

あなたが今持っているのは、 #tab の下の EACH li の n 番目の子アンカーを探していることです

于 2013-09-01T20:35:16.270 に答える