こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

クラス属性を自動で付加したい

現在表示しているurlを取得しサイトのメニューのaタグにclass="current"を自動で付加させたいと思い調べたところ以下の
スクリプトが参考になりそうで試しているのですが全く反応がない
状態です^^;jquery.jsは入れてあります。

$(document).ready( function() {
$("#globalNavi a").each( function() {
var url = document.URL.split("#");
if ( this == url[0] || this + "index.php" == url[0]) {
$(this).parent().addClass("current");
}
});
});

htmlは
<div id="globalNavi">
<ul>
<li><a href="http://hoge.jp/">トップページ</a></li>
<li><a href="http://hoge.jp/menu1/">メニュー1</a></li>
<li><a href="http://hoge.jp/menu2/"">メニュー2</a></li>
</ul>
</div>
となっております。

希望として参照するurlは完全一致ではなく
・http://hoge.jp/
・http://hoge.jp/index.php
であっても同様に扱い他のページはフォルダごととして
・http://hoge.jp/menu1/
・http://hoge.jp/menu1/index.php
・http://hoge.jp/menu1/hoge1.php
・http://hoge.jp/menu1/hoge2.php
は全て同様としmenu1にクラスを付けたいですのですがどうやれば
動くようになるのでしょうか?

投稿日時 - 2008-12-21 03:28:11

QNo.4571780

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

jqueryはほとんど知らないけれど…

「this == url[0]」のような比較のしかたをしているけれど、多分、thisにはURLは入っていないと思うけど?

また、URLの比較をフォルダ単位でしたいなら、ドメイン以後の2番目の「/」までをとって比較するようにすれば良いのでは?
(サイトの全体構成が不明ですが、indexだけは別処理になるのかも)

投稿日時 - 2008-12-24 12:29:00

あなたにオススメの質問