我在点击标签时使用一些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';
}
和HTML
<ul>
<li class="active"><a onclick="switchid('section1', this);return false;">One</a></li>
<li><a onclick="switchid('section2', this);return false;">Two</a></li>
<li><a onclick="switchid('section3', this);return false;">Three</a></li>
<li><a onclick="switchid('section4', this);return false;">Four</a></li>
</ul>
<div id="section1" style="display:block;">
<div id="section2" style="display:none;">
<div id="section3" style="display:none;">
<div id="section4" style="display:none;">
我无法想出一种链接回特定部分的方法。这种方法有可能吗?
谢谢!
答案 0 :(得分:1)
你的页面加载时可以运行一些脚本来检查url hash&amp;加载适当的部分:
// 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>
答案 1 :(得分:0)
HTML功能完全独立于CSS。因此,即使预期的部分设置为display:none。
,以下代码也将始终有效<a href="#section3">Link to section3</a>