- 締切済み
ブログで表示・非表示をコントロール
ブログのプライマリカラムでの表示・非表示についての質問です。 JavaScriptを使って特定のエントリーから<div class="example">......</div>を非表示にしたいので、それら特定のエントリーの末尾に以下のようなコードを貼付けました。 <script type="text/javascript"> var abc = document.getElementById('example'); abc.parentNode.removeChild(abc); </script>(外部ファイル使用) しかし、期待したとおり非表示になりませんでした。試しにテンプレートに貼付けている<div class="example">......</div>の位置をテンプレート上部に移動させると非表示になります。このため、おそらくhtml上で<div>......</div>が<script>......</script>より先にこないと非表示にならないと思うのですが、<div>......</div>はエントリーの末尾に置きたいので位置を変えたくありません。 この問題を解決する方法はないでしょうか? JavaScriptについては、数日前からネットで調べ始めたばかりのもので全く知識がありません。 どうか、宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- taka451213
- ベストアンサー率47% (436/922)
こんにちは。 あぁ、違う・・・。 最初から非表示にしたければ、 <div>...</div> を <div style="display:none;">...</div> (CSSでもいいけど・・・) でいいのかな? 非表示にしたいだけとは思えんが・・・。 removeChild DOMの子ノードを削除してますが、onloadで削除するぐらいなら、最初から書かなければいいと思うが・・・? やりたい事が見えないので、方向がずれているような気が・・・。
- taka451213
- ベストアンサー率47% (436/922)
こんばんは。 <body onload="やりたい事・・・">
お礼
回答ありがとうございます。 教えて頂いたとおり、テンプレートの<body>を<body onload="examplend">と書き換え、さらにJavaScriptの外部ファイルのコードをfunction examplend() {}で包むことで、エントリー下部の<div>......</div>がついに表示されなくなりました! これで当初、もくろんでいた事がほぼ達成できたのですが、一つだけ気になることがあります。それはページを開けた時、たぶん、0.2秒間ぐらいでしょうか、<div>......</div>がほんの一瞬ですが表示されてしまうことです。できれば、これも消したいのですが無理でしょうか? もしかして、各特定エントリー記事の末尾にJavaScriptを書き込むのではなく、テンプレートに貼付けた<div>......</div>に、例えばURL1, URL2, URL3......の場合だけ、あるいはカテゴリ=Aの場合だけ非表示といった条件付をすれば、完全な非表示(つまり、一瞬の表示もない)が達成できるのかなと思ったのですが、そういったことは可能でしょうか? さらなる質問で恐縮ですが、宜しく御願いします。