2012-04-18 16 views
1

を使用してクラスを追加し、URL文字列やメニューの文字列を比較しますすべてのページのメニューでjqueryを使用してそのページのIMを確認したいと考えています。私は、A/liを太字にして、ユーザーがページ上にあることを知るようにします。私はこのようになりますURLを持っているjqueryの

私は次のことを試してみました:

$(document).ready(function() { 
    if(window.location.href.indexOf("test")) // 
    { 
     alert("your url contains the name test"); 
    } 
}); 

しかし、ID、URL文字列の値をハードコーディング伴うdoes notの何かのように。ユーザーがUL/LIへのリンクを追加するかのように、jqueryはリンクとURLを自動的にチェックし、LIにクラスを追加する必要があります。

うまくいけば十分な情報です。

+0

CSSをこれらのために使用することができます。 – Joberror

+0

本当ですか?私を見せてくれませんか? –

+0

かなり長いですが、このリンクを見ることができます。 http://perishablepress.com/dynamic-body-class-id-php-wordpress/ – Joberror

答えて

3

値が見つからない場合、indexOf()メソッドは-1を返します。その値をチェックする必要がありますが、現在のように結果をブール値に強制しないでください。これを試してみてください:

$(document).ready(function() { 
    var loc = window.location.href; 
    $("ul a").each(function() { 
     if (loc.indexOf($(this).attr("href")) != -1) { 
      $(this).addClass("current"); 
     } 
    }); 
}); 

あなたは、セレクタは、もう少し具体的にするために#menu a

+0

私の他のスレッドが閉鎖されてくれてありがとうと申します。 –

+0

心配しないで、喜んで助けてください。 –

+0

あなたはそれを更新しました:P –

2

これは?

$('ul#menu a').each(function() { 
    if(window.location.href.indexOf($(this).attr('href')) !== -1) { 
     $(this).closest('li').addClass('yourClass'); 
    } 
}); 

私は基本的には同じページであってもよく、他のul秒であなたのメニューバーを区別するために、あなたのulにID menuを追加しました。 !== -1としてindexOfは、引数で検索された文字列が見つからない場合は-1を返します。

+0

あなたはこれが何をするのかについての記述を書くことができますので、私は次回のラウンドで覚えていますか? –

+0

@ sp-1986私の答えを編集しました:) –

+0

私は1つ以上の回答を受け入れることができたと思います –

1
$(document).ready(function() { 
    var liTest = $('ul > li'); // ' was missing 
    liTest.each(function() { 
    if(window.location.href == $('a', this).attr('href')) // 
    { 
     $(this).css('font-weight', 'bold'); 
     return; 
    } 
    }); 
}); 
2

indexOf -1を返した文字列が含まれていない場合のような何か必要があります:

(document).ready(function() { 
    if(window.location.href.indexOf("test") != -1) // 
    { 
     alert("your url contains the name test"); 
    } 
}); 
関連する問題