2012-04-27 25 views
1

へのjQueryやJavaScriptでクラスを追加します。たとえば、 "Home.php"ページで、アクティブな<a>タグに ".selected"クラスを追加し、同時に他のすべてのリンクにクラス ".none"を追加したいとします。は、私は次のマークアップを持っている<a>タグ

したがって、「home.php」ページ上にあるときのコードは次のようになります。

<ul class="menubar"> 
    <li><a href="home.php" class="selected" title="Home">Home</a></li> 
    <li><a href="services.php" class="none" title="Services">Services</a></li> 
    <li><a href="aboutus.php" class="none" title="About Us">About Us</a></li> 
    <li><a href="contact.php" class="none" title="Contact Us">Contact Us</a></li> 
</ul> 

をコードの残りの部分の動作方法によると、私はに割り当てるクラスが必要です<a>タグであり、<li>アイテム全体ではありません。任意のアイデアが評価されます。

答えて

0

非常に簡単な方法ですが、効率は保証されません。 HTML:

<ul class="menubar"> 
    <li><a href="home.php" class="selected" id="Home">Home</a></li> 
    <li><a href="services.php" class="none" id="Services">Services</a></li> 
    <li><a href="aboutus.php" class="none" id="About Us">About Us</a></li> 
    <li><a href="contact.php" class="none" id="Contact Us">Contact Us</a></li> 
</ul> 

Javascriptを:

$(document).ready(function() { 
$("#"+ $.trim($("title").html())).addClass("selected"); 
}); 

編集:$ .trim()、単に余分なステップを追加しました。

+0

あなたはおそらくの.text()は –

+0

こんにちはマークmethinks().htmlのない希望、両方のテキスト()とhtml()正常に動作します。 – KBN

+0

'document.title'もやってみることができますが、もっと速くても分かりません.-P –

5

この(あなたがhrefまたはpathnameのように、locationから別のプロパティを使用する必要があるかもしれませんが、あなたのアイデアを得る)のような何か試してみてください:まだ

$('ul.menubar a').each(function(){ 
    if(location.href === this.href){ 
     $(this).addClass('selected'); 
     $('ul.menubar a').not(this).addClass('none'); 
     return false; 
    } 
}); 

またはそれ以上:

$('ul.menubar a').addClass('none').filter('a[href="'+location.pathname+'"]') 
    .removeClass('none').addClass('selected'); 

ここだしlocationオブジェクトの詳細:https://developer.mozilla.org/en/DOM/window.location

+0

最初の1つは魅力のように働いた。 2番目は、 "location.href"を使用している場合でも、 "none"クラスに割り当てられていて、 "selected"ではありません。 – antigaprime

+0

@antigaprime:ようこそ。私は第二のものについてあまりにも確信していなかった、私はちょうどそれの地獄のためにそれを投げた。 :-P –

0

ID属性をあなたの "タグ" とjQueryを使用したが、実行します。

$("#home").addClass('selected');