2012-04-26 1 views
1

を「含みます」 urlをメニューのhrefと組み合わせて太字にします。 jqueryののjqueryのは、私がここにいくつかのjQueryを持っているのhref + URLを比較し、問題

第二の部分のいずれかの左側のメニューで単語をチェックしwww.website.co.uk/aboutus/abgroup.apx URLが示すようにメニュー項目上の罰金をクリックし

ページを作成し、その文字列に一致するトップメニューにスタイルを追加します。しかし、それはすべてのトップメニュー項目を太字にしているようです。

アイデア

URLに.co.ukが含まれている場合はページの読み込みに、次に家をli a太字にしてください。

MENUマークアップ:

<ul class="sf-menu"> 
    <li class="first"><a href="http://www.site.co.uk/en-us/home.aspx">Home</a></li> 
    <li class=""><a href="http://www.site.co.uk/en-us/aboutus/abgroup.aspx">About Us</a></li> 
    <li class=""><a href="http://www.site.co.uk/en-us/casestudies.aspx">Case Studies</a></li> 
</ul> 

これは2パートの質問、

1)されるURLがちょうどwww.website.coあるとき、私はすべてが大胆な作りjqueryのを停止する必要があります.ukがhrefとurlとの比較に失敗したためです。

2)が含まれているが、私がチェックするためのIDが、トップメニューイマイチを使用しています、十分に特異的ではないですので、これはあるかもしれない(すべての時間を強調している理由はいくつかのページで。)

知っておく必要があります

は、これが私の「お問い合わせ」メニューです。 (私も持っているサービスやセクターと同じ原則が適用される - 私は、メニューからdiv要素を検索し、大胆なトップ対応するメニュー項目を作りたい

<ul id="menu2"> 
    <div>About Us<br> 
    </div> 
    <li><a href="/en-us/aboutus/ABgroup.aspx" class="current">A&amp;B Group</a></li> 
    <li style="padding-left: 10px;"><a href="/en-us/aboutus/csr.aspx">CSR</a></li> 
    <li style="padding-left: 10px;"><a href="/en-us/aboutus/csr/sustainability.aspx">Sustainability</a></li> 
    <li style="padding-left: 10px;"><a href="/en-us/aboutus/csr/healthsafety.aspx">Health &amp; Safety</a></li> 
    <li><a href="/aboutus/ab/aluminiumsheets.aspx">Aluminium Sheets</a></li> 
    <li><a href="/aboutus/ab/test.aspx">Test</a></li> 
    <li><a href="/aboutus/ab/cars.aspx">Cars</a></li> 
    <li><a href="/aboutus/ab/houseinteriors.aspx">House Interiors </a></li> 
    <li><a href="/aboutus/ab/abreports.aspx">A&amp;B reports</a></li> 
</ul> 
+0

あなたは、メニューのマークアップの一部を提供することができますか?ありがとう。 – Paul

+0

ADDED ............ –

答えて

1

<ul>のルート要素が無効であるとして<div>を持つ

var pattern = new RegExp('http(s?):\/\/(?:[\w-]+\.)?testsite\.co\.uk(/?)$'); 
if(pattern.test(window.location.href)) { 
    $('.first').css('font-weight', 'bold'); 
} else { 
    $('a[href*="' + window.location.href + '"]').css('font-weight', 'bold'); 
} 

十分に単純です。私はこれが見出しであるならば、頭のタグを使用して<ul>の前に置くことをお勧めします。このような何か:

<h2>About Us</h2> 
<ul> .... </ul> 

が、あなたはjavascriptのためにそうようにいろいろ書い簡単な操作を行うことができます。

var title = $('h2').text(); 
if(title !== '') $("ul.sf-menu li a:contains('" + title + "')").css('font-weight', 'bold'); 
+0

About Usは、ページ上の左メニューの見出しです。今質問にメニューを追加する。 –

+0

質問に詳細を追加しました。確認してください。 –

+0

更新された回答。 – Paul

1

このプラグインを使用するJAMES PADOLSEY regex selector for JQuery

そして、このように使用します。最初の部分を解決

var regexp_part = /\w+\.aspx$/.exec(window.location.href)[0]; 
if (regexp_part != null) { 
    $('a:regex(href, ' + regexp_part[0] +'$)').css('font-weight', 'bold'); 
} 
+0

もし私がロードすると、 'www.website.co.uk'何が起こるでしょうか? –

+0

href属性値をwww.website.coに変更する場合。uk大胆になりますホームリンク –

+0

ページの読み込みでは大胆なものがすべて停止しますが、「ホーム」は「li a」と太字にする必要がありますので、ルートのURLを確認してから太字にしてください...これ?次にポイント1が固定されます。 –

関連する問題