2

我有一个脚本,它在页面加载时在列表中隐藏(显示:无)某些 div。div 内容代表一本书的描述,整个列表是某种参考书目。每个 div 都有一个 id,例如“div1”、“div2”等。

<ul>  
<li><div class="hidden" id="div1"></li>  
<li><div class="hidden" id="div1"></li>   
...  
</ul> 

还有另一个带有菜单的页面,其中包含指向每个这样的 div 的锚定链接:

<ul>  
<li><a href="bibl.html#div1"></li>  
<li><a href="bibl.html#div2"></li>  
...  
</ul>  

当点击另一个页面上的链接时,我希望隐藏的 div 自动展开。我尝试了一些 window.location.href 的东西,但无济于事 - 我的 JS 还很弱。据我了解它应该采用当前 url 并检查它的“#”的逻辑,然后在 id 属性中搜索具有右侧部分的元素。非常感谢好心人。)

4

3 回答 3

7

您可以在目标页面上执行以下操作:

window.onload = function() {
    var hash = window.location.hash; // would be "#div1" or something
    if(hash != "") {
        var id = hash.substr(1); // get rid of #
        document.getElementById(id).style.display = 'block';
    }
};

本质上,您在页面加载时检查窗口的 href 是否附加了哈希。如果是这样,您会找到<div>并将样式显示更改为阻止。

于 2009-07-09T12:04:22.317 回答
1

谢谢!我想你可以添加这个

location.href = '#' + id;

并将页面滚动到引用的 div 的位置。

于 2009-07-09T12:24:09.917 回答
0

您可以使用window.location.hash来查看哈希值。从那里你可以getElementById(hashValue)展示它。

于 2009-07-09T12:06:48.537 回答