Javascript 如何根据当前窗口url向锚定标记的同级ul添加类?
我正在Drupal8上开发一个动态边栏。我创建了一个函数来获取锚定标记的href,如果与window.location.href匹配,它会向锚定标记添加一个类。但是,我需要将该类添加到锚标记的同级ul 我尝试使用sibles()、next()、find()方法通过jquery将该类添加到ul中,但我无法将该类添加到标记的sibling ul中 HTMLJavascript 如何根据当前窗口url向锚定标记的同级ul添加类?,javascript,Javascript,我正在Drupal8上开发一个动态边栏。我创建了一个函数来获取锚定标记的href,如果与window.location.href匹配,它会向锚定标记添加一个类。但是,我需要将该类添加到锚标记的同级ul 我尝试使用sibles()、next()、find()方法通过jquery将该类添加到ul中,但我无法将该类添加到标记的sibling ul中 HTML Javascript var sideBarUl = $('.aside--sidebar u
-
-
-
-
-
-
-
-
-
Javascript
var sideBarUl = $('.aside--sidebar ul li');
sideBarUl.each(function(){
if($(this).children("ul").length) {
$(this).find('a').addClass('sidebarlink-with--content');
}
});
$(function(){
var sideBarLinkContent = $('.sidebarlink-with--content');
var currentWindowUrl = window.location.href;
for ( var i = 0; i < sideBarLinkContent.length; i++) {
if(sideBarLinkContent[i].href == currentWindowUrl){
sideBarLinkContent[i].className = 'sidebar-link--opened';
}
}
});
var sideBarUl=$('.aside--sidebarulli');
sideBarUl.each(函数(){
if($(此).children(“ul”).length){
$(this.find('a').addClass('sidebarlink-with--content');
}
});
$(函数(){
var sideBarLinkContent=$('.sidebarlink with--content');
var currentWindowUrl=window.location.href;
对于(变量i=0;i
我只是想将类添加到与窗口url匹配的当前锚定标记中,但我想将类添加到其同级ul中,以将显示更改为block 您的js中有一些错误,但基本正确 好的,这是我在第一个函数中首先发现的,在这里你可以检查li是否有孩子
// not if($(this).children("ul").length) but
if($(this).children("ul").length> 0) {
$(this).find('a:not([href=""])').addClass('sidebarlink-with--content');
}
第二个问题是,当您验证href时,它也是错误的
您正在做的是检查
(relative) /en/services-prehospitaliers ==(full) www.xxx.com/en/services-prehospitaliers
这是错误的,因为href包含sideBarLinkContent[i]所在的完整url。href只包含它应该包含的相对部分
for ( var i = 0; i < sideBarLinkContent.length; i++) {
if(currentWindowUrl.indexOf( sideBarLinkContent[i].href) != -1){
sideBarLinkContent[i].className = 'sidebar-link--opened';
}
}
for(变量i=0;i
您的html似乎有语法错误。您不能使用
for ( var i = 0; i < sideBarLinkContent.length; i++) {
if(currentWindowUrl.indexOf( sideBarLinkContent[i].href) != -1){
sideBarLinkContent[i].className = 'sidebar-link--opened';
}
}