Jquery 如何遍历树以添加';主动';根据用户站点位置,在按钮上向我的菜单初始化?
我试图使“菜单打开”按钮,突出显示当用户在一个特定的文件夹。有一些关于S.O.的例子对我有所帮助,但我需要遍历树来设置“active”类Jquery 如何遍历树以添加';主动';根据用户站点位置,在按钮上向我的菜单初始化?,jquery,Jquery,我试图使“菜单打开”按钮,突出显示当用户在一个特定的文件夹。有一些关于S.O.的例子对我有所帮助,但我需要遍历树来设置“active”类 var current = location.pathname; $('nav dl dt a').each(function(){ var $this = $(this); // if the current path is like this link, make it active if($this.attr('href').inde
var current = location.pathname;
$('nav dl dt a').each(function(){
var $this = $(this);
// if the current path is like this link, make it active
if($this.attr('href').indexOf(current) !== -1){
($this).parents('nav dl dt').addClass('menuOn');
}
});
由于我的HTML结构,我必须遍历:
var current=location.pathname;
$('nav dl dt a')。每个(函数(){
var$this=$(this);
//如果当前路径与此链接类似,请将其激活
//评论以下测试条件。
//if($this.attr('href').indexOf(当前)!=-1){
($this).parents('nav dl dt').addClass('menuOn');
//}
});代码>
您可以使用最近的查找最近的dt
-
var current = location.pathname;
$('nav dl dt a').each(function(){
var $this = $(this);
// if the current path is like this link, make it active
if($this.attr('href') == ('/' + current)){
$(this).closest('dt').addClass('menuOn');
}
});
您可以使用最近的
查找最近的dt
-
var current = location.pathname;
$('nav dl dt a').each(function(){
var $this = $(this);
// if the current path is like this link, make it active
if($this.attr('href') == ('/' + current)){
$(this).closest('dt').addClass('menuOn');
}
});
这是一个很好的用例
请注意,这是一个很好的使用案例
请注意,在DOM中,您正在编写div
,但在jquery中,第一行中的选择器以nav
开头,是故意的还是错误的?@SujitAgarwal它被包装在nav
是中。我已更新了我的代码。:-)回答。请尝试一下。如果你运行有问题的代码,它可以正常工作。仅用于验证($this).parents('nav dl dt').addClass('menuOn')的逻辑代码>注释了if
条件并选中。它按预期工作。您可以使用浏览器中的inspect元素进行检查。在您的DOM中,您正在写入div
,但在jquery中,第一行中的选择器以nav
开头,是故意的还是错误的?@SujitAgarwal它被包装为nav
是。我已更新了我的代码。:-)回答。请尝试一下。如果你运行有问题的代码,它可以正常工作。仅用于验证($this).parents('nav dl dt').addClass('menuOn')的逻辑代码>注释了if
条件并选中。它按预期工作。您可以使用浏览器中的inspect元素进行检查。谢谢!当我在主页/
上时,他们都有菜单
,但当我在单独的页面/books/
,/resources/
等菜单
没有被应用?为什么会这样?我对if条件做了一点修改。请检查一下,谢谢!当我在主页/
上时,他们都有菜单
,但当我在单独的页面/books/
,/resources/
等菜单
没有被应用?为什么会这样?我对if条件做了一点修改。请检查是否应为返回此值。href==当前值
?@SujitAgarwal否,因为当前值是路径名
不是href
。
与location具有相同的属性,但筛选函数会将此
设置为当前正在从选择器映射的锚定标记?我在这里理解错误了吗?如果这是正确的,那么this
的当前值就是锚标记,所以我们需要访问锚的href值,而不是路径名,对吗?@SujitAgarwal对……我在上面说过
与位置
具有相同的属性。很多人没有意识到这一点,因为你不经常使用它们,并且可以做其他事情来完成相同的任务。这不应该是返回this.href===current
?@SujitAgarwal否,因为current是路径名
而不是href
。
与location具有相同的属性,但筛选函数会将此
设置为当前正在从选择器映射的锚定标记?我在这里理解错误了吗?如果这是正确的,那么this
的当前值就是锚标记,所以我们需要访问锚的href值,而不是路径名,对吗?@SujitAgarwal对……我在上面说过
与位置
具有相同的属性。很多人没有意识到这一点,因为你不经常使用它们,可以做其他事情来完成同样的任务