2011-12-08 53 views
0
var obj = element; 
while (obj.nodeName != 'p' && obj.nodeName != 'body') { 
    obj = obj.parentNode; 
} 
if (obj.nodeName == 'p') { 
    document.body.insertBefore(p, obj); 
} 

これは私のjavaScript関数内のコードです。 p要素を作成し、最後にp要素が見つかる前に挿入します。このコードはxhtmlファイルでは動作しますが、htmlファイルでは動作しません。なぜ誰かが私に言うことができますか?Javascriptはxhtmlで動作しますが、htmlでは動作しません

+1

ようこそスタックオーバーフロー! "うまくいかない"とは、決して良いエラー記述ではありません。何が間違っているのか、どのようなエラーメッセージが出るのかなどを記述してください。 –

+0

デバッガを使って何がうまくいかないのか考えましたか?火かき棒は良い賭けです。 –

+0

私はナビゲータでそれを試しているわけではないので、情報はあまりありませんが、xhtmlで動作します。問題はコーディングやいくつかのものから来ているようです。 –

答えて

2

HTMLモードでは、お使いのブラウザで大文字のタグ名が返されている可能性があります。

nodeName.toLowerCase()を使用してください。

+0

私はそれを試しましたが、何もしませんでした.. –

+0

問題が解決され、p要素がbodyの直下にないため、document.bodyでそれが見つからないのはなぜですか、obj.parentNodeはうまくいきます。 –

関連する問題