如果从不同的页面调用,如何 assign/remove a class 到手风琴

How to assign/remove a class to an accordion if called from a different page

我是 JavaScript 的业余爱好者,我有一个带有两个 Div 的手风琴,如果从特定位置调用,我想显示特定的 Div(活动)另一个页面,简单的 ID 调用不起作用。下面给出的代码 ID

$(document).ready(function(){
    var address=window.location.href;
    if(address.value$=="#div2"){
       $('div > #div1').removeClass('active');
       $('div > #div2').addClass('active');
    }

});

在上面的代码中,我想显示第二个 Div 在手风琴中处于活动状态,所以我传递了“test.html#div2”作为地址对于页面,地址变量捕获地址,但我不确定 .value 的事情。请帮助。

window.location.href returns 一个字符串,所以 属性 value$ 应该是未定义的。

如果你想比较当前的 hash 和 div 然后使用 window.location.hash

像这样使用自定义缓存变量:

var hashCache = window.location.hash;

然后你可以将当前哈希与缓存进行比较,看看哈希是否发生变化

if(hashCache !== window.location.hash){
   //hash changed!
}

如果我理解错了,你想比较完整的 url,那么使用 window.location.href 并将其与固定字符串进行比较,如下所示:

if(window.location.href !== 'http://example.com'){
   //user is not on the expected page!
}

因此您的代码应如下所示:

var hashCache = window.location.hash;
$(document).ready(function(){
    if(window.location.href !== 'http://example.com'){
       $('div > #div1').removeClass('active');
       $('div > #div2').addClass('active');
    }
    //OR
    if(window.location.hash !== hashCache){
       $('div > #div1').removeClass('active');
       $('div > #div2').addClass('active');
    }

});