简单的jQuery addClass()似乎不起作用
simple jQuery addClass() doesn't seem to be working
我希望能够确定用户当前所在的页面。 向导航链接添加独特样式形式的简单指示器 用户当前正在查看其上下文
这是我的脚本,所有选择器工作正常,如果语句也可以完成这项工作,但addClass()函数什么都不做..这是我的代码:
<script>
$(document).ready(function(){
var pathname = window.location.pathname;
$("#links ul li a").each( function() {
var href= $(this).attr("href");
if (pathname.indexOf(href) >= 0){
$(this).addClass("active");
}
} );
});
</script>
<nav id="links">
<ul>
<li><a href="index.php">Home</a></li>
<li><a>About</a></li>
<li><a>Contact</a></li>
</ul>
</nav>
.HTML:
让它工作,这是我的最终代码,是否需要任何改进?
$(document).ready(function(){
var pathname = window.location.pathname;
var onDomain=true;
$("#links ul li a").each( function() {
var href= $(this).attr("href");
if (href != undefined && pathname.indexOf(href) >= 0){
$(this).addClass("active");
onDomain=false;
}
});
if (onDomain){
$("#links ul li:first-child a").addClass("active");
}
});
将href
分配给a
;
<nav id="links">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Contact</a></li>
</ul>
</nav>
然后尝试:
var pathname = window.location.pathname;
$("#links ul li a").each( function() {
var href= $(this).attr("href");
if (href.length && pathname.indexOf(href) >= 0){
$(this).addClass("active");
}
});
如果您无法更改 HTML,请尝试如下操作:
var pathname = window.location.pathname;
$("#links ul li a").each( function() {
var href= $(this).attr("href");
if (href != undefined && pathname.indexOf(href) >= 0){
$(this).addClass("active");
}
});
很可能活动类应该应用于 li.。假设你的逻辑是正确的,并且该类应该应用于 li(没有 html 和 css 很难分辨):
if (pathname.indexOf(href) >= 0){
$(this).parent().addClass("active");
}
var loc = ''+( $(location).attr('href').split('/').slice(-1) );
if( typeof loc !== 'undefined'){
$("#links li").find("a[href='"+loc+"']").each(function(){
$(this).addClass("active");
});
}else( typeof loc === 'undefined' ){
$("#links li a:eq(0)").addClass("active"); // if you use 'home' as your first.
}
我不确定我是否理解这个问题,但我会选择类似的东西:
$("#links ul li a").filter( function() {
return window.location.pathname.indexOf(this.href) != -1;
}).addClass('active');
<script type="text/javascript">
$(window).load(function() {
var url = window.location;
$('#nav a').filter(function() {
return this.href == url;
}).parents("li").addClass('active');
});
</script>
这是工作在对菜单使用外部文件时使用此脚本
喜欢索引.php包括菜单.php您必须使用此 SCRETP tu 检测 URL 已加载,并且类菜单更改为活动类。
谢谢你代码悖论你的代码是工作
相关文章:
- ng-view 中的脚本在从文件引用时不起作用(JQuery 在角度之前加载)
- 转换效果不起作用jquery
- 淡入淡出和AppendTo不起作用-jQuery
- 变量计算不起作用(jquery/javascript)
- 更改事件不起作用 jQuery 自动完成
- 倒计时不起作用 jquery
- ajax 响应包括 image,onClick 事件对图像不起作用 jQuery
- 从JavaScript添加html,但不起作用jQuery切换功能
- 简单的工具提示插件 - 点击选项不起作用 - jQuery
- 图像滑块不起作用(jquery)- Rails 3项目
- 触发单击事件不起作用 jquery
- 动态创建的 li 点击事件不起作用 jQuery
- Jquery验证不起作用.Jquery-Javascript
- JavaScript生成的元素不起作用-jQuery
- 事件委派不起作用jquery
- 类选择器在追加后不起作用 (JQuery)
- 为什么这个变量不起作用?Jquery
- 首先,渐变有时似乎不起作用(jquery)
- 有什么原因吗('img')加载不起作用(jQuery)
- 更改不起作用jQuery