0

ねえ、私は、ユーザーがリンクの対象となる特定のページを表示している場合にのみ、NAV内のリンクの背景色を他のすべてのnavリンクとは異なる色に変更しようとしています。

コードは次のとおりです。

$("#nav li ul li a #changeBG1").css("background-color","red");

そして、ナビゲーションHTMLは次のようになります。

<ul id="nav">
    <li><a href="index.php">home</a></li>
    <li><a href="custHelp.php">who we are</a>
    <ul>
        <li id="changeBG1"><a href="about.php">about</a></li>
        <li id="changeBG2"><a href="help.php">team</a></li>
    </ul>
</li>

ただし、それだけでは変更されないようで、すべてが変更されます。NAVのIDを呼び出してからchangeBG1のIDを呼び出す方法がわからないため、1つだけが変更されます。

Jqueryコードは次のとおりです。

var url = window.location.href;

url = url.substr(url.lastIndexOf("/") + 1);
$("#theNav").find("a[href='" + url + "']").addClass("theNavsBG");

if (url == 'about.php'){
    $("#nav li ul li a #changeBG1").css("background-color","red");
}

どんな助けでも素晴らしいでしょう!ありがとう!

4

3 に答える 3

3

これを試して:

$("#changeBG1").css("background-color","red");

idは最高のセレクターです。「もの」を追加する必要はありません。

それにクラスを追加することもできますli

$("#changeBG1").addClass('foo');

とにかく、セレクターは次のようになります。

$("#nav li ul li#changeBG1").css("background-color","red");
于 2012-06-04T21:40:38.397 に答える
3

cssクラスを作成し、jqueryを使用してその特定のリンクにクラスを追加して、それが現在のページであることを示します。

CSS

.active {
   background-color: red;
}

jQuery

var url = window.location.href;
url = url.substr(url.lastIndexOf("/") + 1);

$("#nav li ul li a").removeClass('active');
$("a[href='" + url + "']").addClass('active');
于 2012-06-04T21:51:17.563 に答える
1

http://jsfiddle.net/saluce/LhbKv/1/

自分の生活をもっとシンプルに...

.active{
    background-color: red;
}​

..。

$("#nav a[href$='" + url + "']").addClass("active");

このコードは、URL内の文字列で終わるリンクを検索し($セレクター内の提供)、そのaタグにクラスを追加します。に色を付けたい場合はli、を使用し.parent()ます。

$("#nav a[href$='" + url + "']").parent().addClass("active");
于 2012-06-04T22:04:24.610 に答える