根据当前页面动态更改链接的CSS

时间:2012-03-25 19:47:23

标签: javascript jquery

我的网页顶部有以下链接:

 <ul class="icyLink">

      <li><a class="nav1" href="index.html">The World of Icengale</a></li>
      <li><a class="nav1" href="history.htm">History of Icengale</a></li>
      <li><a class="nav1" href="calendar.htm">Time & Calendar of Icengale</a></li>

 </ul>

每个链接的颜色为蓝色,每个<li>都有背景图片(background-image:url('../ images / blue2.jpg')。

我想要做的是根据当前页面动态更改单个链接的css。例如,如果有人在history.htm页面上,则链接的颜色将变为白色,背景图像将更改为另一个(在本例中为“blue3”)。所有其他链接的css将保留为同样。我该怎么做?

与往常一样,非常感谢任何和所有帮助!

小心,度过美好的一天....

侨, 约翰。

4 个答案:

答案 0 :(得分:6)

您可以检查每个链接,看它是否与当前位置匹配。根据您的需要,这可以或多或少地提前,但类似于:

var loc = window.location.pathname;

$('.icyLink').find('a').each(function() {
  $(this).toggleClass('active', $(this).attr('href') == loc);
});

然后在CSS中设置活动类的样式:

.icyLink a.active{color:#fff}

答案 1 :(得分:0)

您正在寻找jQuery .css.addClass函数。

答案 2 :(得分:0)

在每个页面中设置一个唯一的body ID,然后在每个菜单项上设置一个id:

#home-page #home-menu,
#history-page #history-menu { background: blue; } // Etc....

答案 3 :(得分:0)

<ul class="icyLink">

  <li><a class="nav1" href="index.html">The World of Icengale</a></li>
  <li><a class="nav1" href="history.htm">History of Icengale</a></li>
  <li><a class="nav1" href="calendar.htm">Time & Calendar of Icengale</a></li>

</ul>
<script>
$(document).ready(function(){
   $("a.nav1").click(function () {
      // switch all tabs off
      $(".active").removeClass("active");
      // switch this tab on
      $(this).addClass("active");
   });
});
</script>

CSS

.active{background-image: url('../images/blue3.jpg');color:#fff;}