dポイントプレゼントキャンペーン実施中!

過去ログを呼んで近いのがあったのでよく読んだのですが
よくわかりませんので書き込みします。
以下のスクリプトで「オブジェクトがありませんのエラーが発生します。3行目のfor文の「obj.childNodes」でエラーが発生します。
「document.getElementById」が「null」であるのが原因のようですが、なぜ「document.getElementById」に値が入らないのかがつかめません。
お手数ですがよろしくお願いします

【script】
---------------------------------------------
if(document.getElementById && document.all && !navigator.userAgent.match(/Opera/)){
var obj = document.getElementById("mainmenu");
for(var i=0;i<obj.childNodes.length;i++){
if(obj.childNodes[i].className=="pullmenu"){
obj.childNodes[i].onmouseover = function(){pull(this)
};
obj.childNodes[i].onmouseout = function(){pull(this)
};
}
}
}
---------------------------------------------
【html】
---------------------------------------------
<ul id="mainmenu">
<li id="Begginer" class="pullmenu"><a href="http://www.○○○.co.jp/b/w.php">○○○</a>
<ul>

<li><a href="http://www.○○○.co.jp/b/w.php">○○○
</a></li>
<li><a href="http://www.○○○.co.jp/b/s.php">○○○
</a></li>
<li><a href="http://www.○○○.co.jp/b/m.php">○○○
</a></li>

</ul>
</li>
</ul>

A 回答 (1件)

 そのスクリプトがどのタイミングで実行されるかこれだけではわかりませんが、<ul id="mainmenu">の表示(レンダリング)が完了してからでないと、document.getElementById("mainmenu")としても見つかりません。



そのスクリプトを、
<ul id="mainmenu">
</ul>
より下に置くか

<body onload="xxx;">
とか
window.onload = function(){
xxx;
}
とかで呼び出すとか、他にも方法はあるけど...
    • good
    • 0
この回答へのお礼

ありがとうございました。
何とか解決しそうですが、他にもエラーが噴出している状態です

助かりました。

お礼日時:2011/01/17 15:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!