Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何遍历树以添加';主动';根据用户站点位置,在按钮上向我的菜单初始化?_Jquery - Fatal编程技术网

Jquery 如何遍历树以添加';主动';根据用户站点位置,在按钮上向我的菜单初始化?

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

我试图使“菜单打开”按钮,突出显示当用户在一个特定的文件夹。有一些关于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').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对……我在上面说过
位置
具有相同的属性。很多人没有意识到这一点,因为你不经常使用它们,可以做其他事情来完成同样的任务