我编写了以下代码来识别当前页面并在导航栏中对其进行相应标记。它工作得很好,除了第一次加载index.php(代码位于header.php文件的末尾:
path = location.pathname.split("/");
pathname= "#header_nav li a[href='" + path[(path.length-1)] + "']";
$(pathname).attr("id","current");
任何想法?
答案 0 :(得分:0)
尝试将代码放在jQuery的.ready()
函数中:
$(document).ready(function() {
path = location.pathname.split("/");
pathname= "#header_nav li a[href='" + path[(path.length-1)] + "']";
$(pathname).attr("id","current");
});
答案 1 :(得分:0)
如果网页的网址为http://domain/而不是http://domain/index.php,则您不会将a-element与href =“index.php”匹配。
这个怎么样?
var filename = location.pathname.split('/').pop();
var currentHref = filename ||'index.php';
$('#header_nav li a[href="' + currentHref + '"]').prop('id','current');
请记住,在jQuery 1.6+中你应该使用prop()函数而不是attr()来引用id属性。不过,我更喜欢使用classname,current。