最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to add a CSS class depending on URL path? - Stack Overflow

programmeradmin5浏览0评论

How can I add an CSS class to an div depending on what path I am on, including that it should not mather if I had # in it?

<div class="popup">
    <ul>
        <li><a href="#vs">Example 1</a></li>
        <li><a href="#bod">Example 2</a></li>
        <li><a href="#ptf">Example 3</a></li>
    </ul>
</div><!-- popup -->

<!-- how would I add the class addMe with javascript depending on the site path? It has to work with # -->

jsfiddle/zatox50/wBxkj/

Example index.html

How can I add an CSS class to an div depending on what path I am on, including that it should not mather if I had # in it?

<div class="popup">
    <ul>
        <li><a href="#vs">Example 1</a></li>
        <li><a href="#bod">Example 2</a></li>
        <li><a href="#ptf">Example 3</a></li>
    </ul>
</div><!-- popup -->

<!-- how would I add the class addMe with javascript depending on the site path? It has to work with # -->

jsfiddle/zatox50/wBxkj/

Example index.html

Share Improve this question edited Oct 14, 2013 at 7:54 Niklas asked Oct 14, 2013 at 7:43 NiklasNiklas 4057 silver badges25 bronze badges 4
  • give some examples of URLs and tell your criteria to get the class name. – Jitendra Pancholi Commented Oct 14, 2013 at 7:48
  • Is this what you mean? $($(this).attr('href')).addClass('addMe'); (using jquery). – Mr_Green Commented Oct 14, 2013 at 7:50
  • Maybe this is usefull paulund.co.uk/use-jquery-to-highlight-active-menu-item ?? – GreyRoofPigeon Commented Oct 14, 2013 at 7:51
  • @Mr_Green It looks like what I need, could you fork my fiddle and show it in use there? – Niklas Commented Oct 14, 2013 at 7:56
Add a ment  | 

3 Answers 3

Reset to default 5
jQuery(function($){
   switch(window.location.hash){
      case "vs":  $(".popup").addClass("class1"); break;
      case "bod":  $(".popup").addClass("class2"); break;
      case "ptf":  $(".popup").addClass("class3"); break;
   }
});

none of these worked for me. this works:

<script type="text/javascript">
    jQuery(document).ready(function($){
        // Get current url
        // Select an a element that has the matching href and apply a class of 'active'.     Also prepend a - to the content of the link
        var url = window.location.href;
        $('.menu a[href="'+url+'"]').addClass('active');
    });
</script>

menu structure:

<div class="menu">
    <a href="#" class="menu-element">001</a>
    <a href="#" class="menu-element">002</a>
</div> 

source: http://www.paulund.co.uk/use-jquery-to-highlight-active-menu-item

This is the simple code for create Dynamic active menu for website by using JavaScript & JQuery.

<style>
.myactive{
     background-color:#F7A751;
    }
    </style>

<script type="text/javascript">
$(function () {
var url = window.location.pathname; 
var activePage = url.substring(url.lastIndexOf('/') + 1);
    activePage === '' ?  $('#home').addClass("myactive") : $('#home').removeClass("myactive") ; // for active index page
    activePage === 'about-us' ? $('#about').addClass("myactive") : $('#about').removeClass("myactive") ; //active about us 
    activePage === 'who-we-are' ? $('#info').addClass("myactive") : 
    $('#info').removeClass("myactive") ; 
});
</script>  

#HTML Part....
 <li id="home"><a href="#">Home</a></li>
 <li id="about"><a href="#">About</a></li>
发布评论

评论列表(0)

  1. 暂无评论