div を非表示にするために、ページの読み込み時に以下の javascript 関数 shoh() を実行しています。これは、html のハードコードされた div では問題なく動作しますが、php で作成された div では動作しないようです。PHP が div を作成する前に JavaScript が最初に実行され、それが非表示にならないのはなぜでしょうか? もしそうなら、作成後にこれらの div を非表示にする他の方法はありますか? JavaScriptが無効になっている場合、デフォルトで表示する必要がありますか?
onload で実行されるコード:
<script type="text/javascript">
function closeAllDivs() {
shoh('g1');
shoh('g2');
shoh('g3');
shoh('g4');
}
</script>
<BODY onLoad="closeAllDivs();">
divを非表示にするJavaScript:
function shoh(id) {
if (document.getElementById) { // DOM3 = IE5, NS6
if (document.getElementById(id).style.display == "none"){
document.getElementById(id).style.display = 'block';
filter(("img"+id),'imgin');
} else {
filter(("img"+id),'imgout');
document.getElementById(id).style.display = 'none';
}
} else {
if (document.layers) {
if (document.id.display == "none"){
document.id.display = 'block';
filter(("img"+id),'imgin');
} else {
filter(("img"+id),'imgout');
document.id.display = 'none';
}
} else {
if (document.all.id.style.visibility == "none"){
document.all.id.style.display = 'block';
} else {
filter(("img"+id),'imgout');
document.all.id.style.display = 'none';
}
}
}
}
div を作成する php コード:
for ($i=0; $i < count($this->items); $i++){
<div style="display: block;" id="g<? echo $i ?>">
... code that displays items
</div>
}