2

ページの読み込み時にリスト内の特定の div を非表示 (display:none) にするスクリプトがあります。div コンテンツは本の説明を表し、リスト全体はある種の参考文献です。すべての div には、「div1」、「div2」などの ID があります。

<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 に答える