現在、メニューは以下のようなURLになっています。
<ul>
<li><a href="#top"></li>
<li><a href="#about" class="about"></li>
<li><a href="#info" class="info"></li>
<li><a href="#contact" class="contact"></li>
</ul>
#top以外のbodyに、pageというクラスをつけるにはどうしたらいいでしょうか?
どうぞよろしくお願いします。
クリックしたもの以外のメニュー項目に page というクラスをつける、ということでしょうか。
<ul> <li><a href="#top">TOP</a></li> <li><a href="#about" class="about">ABOUT</a></li> <li><a href="#info" class="info">INFO</a></li> <li><a href="#contact" class="contact">CONTACT</a></li> </ul> <script> $(function() { $("UL LI A").each(function() { var a = $(this); if (a.attr("href") != "#top") { a.attr("class", a.attr("class") + " page"); } }); $("UL LI A").on("click", function() { var me = $(this); $("UL LI A").each(function() { var a = $(this); var clz = a.attr("class"); if (typeof clz != "undefined") { a.attr("class", clz.replace(/page/, "")); } if (me.attr("href") != a.attr("href")) { a.attr("class", a.attr("class") + " page"); } }); }); }); </script>
jsFiddle で試したのが、こちらです。
http://jsfiddle.net/7sdfLjgw/
<body>にクラスをつけたいです。
aboutやinfoのリンクをクリックすると、<body class="page">となり、TOPの場合は、<body>のままになるということです。
では、こんな感じで。
<ul> <li><a href="#top">TOP</a></li> <li><a href="#about" class="about">ABOUT</a></li> <li><a href="#info" class="info">INFO</a></li> <li><a href="#contact" class="contact">CONTACT</a></li> </ul> <script> $(function() { $("UL LI A").on("click", function() { var a = $(this); var body = $("BODY"); if (a.attr("href") != "#top") { if (body.attr("class") != "page") { $("BODY").attr("class", "page"); } } else { body.attr("class", ""); } }); }); </script>
jsFiddle で試したのが、こちらです。
http://jsfiddle.net/7sdfLjgw/1/
回答に追記しました。
2015/01/14 17:43:47有難うございます!
2015/01/14 19:22:55パーフェクトでした。