链接到由隐藏/显示JavaScript函数隐藏的站点部分

链接到由隐藏/显示JavaScript函数隐藏的站点部分,javascript,visibility,hyperlink,Javascript,Visibility,Hyperlink,我正在使用一点JavaScript在单击选项卡时显示/隐藏站点的部分。我试图找出是否有一种方法可以链接回该页面,并根据该链接打开某个选项卡 以下是JS: var ids=new Array('section1','section2','section3','section4'); function switchid(id, el){ hideallids(); showdiv(id); var li = el.parentNode.parentNode.ch

我正在使用一点JavaScript在单击选项卡时显示/隐藏站点的部分。我试图找出是否有一种方法可以链接回该页面,并根据该链接打开某个选项卡

以下是JS:

   var ids=new Array('section1','section2','section3','section4');

function switchid(id, el){  
    hideallids();
    showdiv(id);

    var li = el.parentNode.parentNode.childNodes[0];
    while (li) {
        if (!li.tagName || li.tagName.toLowerCase() != "li")
            li = li.nextSibling; // skip the text node
        if (li) {
          li.className = "";
          li = li.nextSibling;
        }
    }
    el.parentNode.className = "active";
}

function hideallids(){
    //loop through the array and hide each element by id
    for (var i=0;i<ids.length;i++){
        hidediv(ids[i]);
    }         
}

function hidediv(id) {
    //safe function to hide an element with a specified id
        document.getElementById(id).style.display = 'none';
}

function showdiv(id) {
    //safe function to show an element with a specified id        
        document.getElementById(id).style.display = 'block';
}
var id=new数组('section1'、'section2'、'section3'、'section4');
函数开关id(id,el){
汗腺();
showdiv(id);
var li=el.parentNode.parentNode.childNodes[0];
而(李){
如果(!li.tagName | | li.tagName.toLowerCase()!=“li”)
li=li.nextSibling;//跳过文本节点
如果(李){
li.className=“”;
li=li.nextSibling;
}
}
el.parentNode.className=“活动”;
}
函数hidealids(){
//循环遍历数组并按id隐藏每个元素

for(var i=0;iHTML功能完全独立于CSS。因此,即使预期的部分设置为display:none,以下代码也将始终有效

<a href="#section3">Link to section3</a>

HTML功能完全独立于CSS。因此,即使要显示的部分设置为“无”,以下代码也始终有效

<a href="#section3">Link to section3</a>

您可以在页面加载时运行一些脚本,检查url哈希并加载适当的部分:

// on page load
var sectionid = /section\d/i.exec(location.hash);
if (sectionid) {
    var link = document.getElementById(switchid[0] +"_link");
    switchid(sectionid[0], link);
}
&将id添加到您的链接:

<li><a id="section2_link" onclick="switchid('section2', this);return false;">Two</a></li>
  • 两个

  • 您可以在页面加载时运行一些脚本,检查url哈希并加载适当的部分:

    // on page load
    var sectionid = /section\d/i.exec(location.hash);
    if (sectionid) {
        var link = document.getElementById(switchid[0] +"_link");
        switchid(sectionid[0], link);
    }
    
    &将id添加到您的链接:

    <li><a id="section2_link" onclick="switchid('section2', this);return false;">Two</a></li>
    
  • 两个

  • 我需要从另一个页面的入站链接执行此操作。类似于。不幸的是,此操作不起作用。实际上,您的建议也不起作用。当我将您的定位点放置在页面上时,什么都不会发生。
    当我将您的定位点放置在页面上时,什么都不会发生。
    浏览器中的地址是否会更改为t的地址当前页面+
    #section 3
    ?确实如此。试试这个:您好,这对您有用吗?我不确定锚点将如何覆盖显示:无它不会覆盖显示:无。正如我在帖子中所说,HTML功能完全独立于CSS。当您说以下代码将始终有效,即使预期的部分是se不显示:无,我想我误解了。我正在寻找实际打开选项卡的内容,将其可见性设置为display:block。也许我在帖子中不够清楚。谢谢。我需要从另一个页面的入站链接使用此功能。类似。很遗憾,此功能不起作用。您推荐的,a也不起作用事实上。当我将你的锚放在页面上时,什么都不会发生。
    当我将你的锚放在页面上时,什么都不会发生。
    你浏览器中的地址是否会更改为当前页面的地址+
    #第3节
    ?确实如此。试试这个:您好,这对你有用吗?我不确定锚如何覆盖显示:noneIts not going覆盖显示:无。正如我在我的post HTML功能中所说的,它完全独立于CSS。当你说即使预期的部分设置为display:none,以下代码也将始终有效时,我想我误解了。我正在寻找实际打开选项卡的内容,将其可见性设置为display:block。也许我不是cl在我的帖子里听够了。谢谢。是的,这就是我要找的。谢谢。但是我在让它工作时遇到了麻烦。当我用页面加载事件添加它时,什么都没有发生。而且,我再也不能点击标签来激活。我对javascript相当陌生,所以我可能遗漏了一些东西。我对重用“swi”有点困惑tchid'与您的方式相同。我使用您的函数switchid时出错。我对我的示例进行了一点清理,但是,您肯定需要对其进行修改以使其正常工作。断开的选项卡可能是JS错误,您是否检查了浏览器的javascript错误控制台?是的,这是我正在寻找的。谢谢。我没有卢布让它开始工作。当我在页面加载事件中添加它时,什么都没有发生。而且,我不能再点击选项卡来激活。我对javascript相当陌生,所以我可能遗漏了一些东西。我有点困惑于如何像你那样重用“switchid”。我使用你的函数switchid时出错。我清理了我的例子有点夸张,但是,你肯定需要修改它才能让它正常工作。坏掉的标签可能是JS错误,你检查过浏览器的javascript错误控制台吗?