如果导航链接匹配page_id更改颜色

时间:2011-04-01 20:34:16

标签: jquery variables nav pathname

好的,这就是我的导航设置

<div id="headerMenu">
            <ul>  
                <li style="width:147px"><a href="/?page_id=92" class="menuHov"><span>ABOUT<br/>ABOUT</span></a></li>
                <li style="width:186px"><a href="/?page_id=64" class="menuHov"><span>STOCKISTS<br/>STOCKISTS</span></a></li>
                <li style="width:146px"><a href="/?page_id=96" class="menuHov"><span>PRESS<br/>PRESS</span></a></li>
                <li style="width:128px"><a href="/?category_name=blogs" class="menuHov"><span>BLOG<br/>BLOG</span></a></li>
                <li style="width:70px"><a href="/?page_id=89 " class="menuHov"><span>CONTACT<br/>CONTACT</span></a></li>
            </ul>

我需要一个jquery脚本来识别page_id变量和href,如果它们是相同的,请更改颜色...如果您需要更多信息,请告诉我...

这是我到目前为止所尝试的内容。

 $(document).ready(function() {
    $('a.menuHov[href$=' + window.location.pathname + ']').css('color', '#fae349');
});

但这会改变一切,因为我猜它不会将href识别为路径名

3 个答案:

答案 0 :(得分:0)

我认为问题在于正斜杠/?在URL中。 试试这个它应该工作:

$(document).ready(function() {     
   $('a.menuHov[href$="' + window.location.pathname + '"]').css('color', '#fae349'); 
}); 

工作示例@ jsfiddle:http://jsfiddle.net/CeZCY/8/

答案 1 :(得分:0)

$(document).ready(function() {
     var link = window.location;
     var t_arr = new Array();
     t_arr = link.split('/');
     $("a.menuHov[href$='"+t_arr[1]+"']").css('color', '#fae349');     
});

可以吗?

答案 2 :(得分:0)

$(function(){
    var page_id = getParameterByName("page_id");
    $("a.menuHov[href$=" + page_id + "]").css('color', '#fae349');
})

包括here

中的查询字符串解析器
function getParameterByName( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}