2008-09-17 5 views
-1

他に誰もこのエラーメッセージが表示されています。 Googleとの簡単な確認では私にはあまり表示されません。tagNameがnullであるか、IE7のオブジェクトエラーメッセージではありません。最新バージョンのjQuery(1.2.6)を使用しています

+0

私たちはこの問題を生成するコードのサンプルを与える - (。$(「#のMYELEMENT」)(0).tagNameを得る)私はjessegavinが何か... –

答えて

0

申し訳ありませんが、これは一種の半質問です。私は自分の.jsファイルを調べ、コードブロック全体を削除しています。私は1つの特定の.jsファイルに分離しました。

この質問を読み、返信してくれてありがとうございました。

2

あなたはおそらく、あなたがこれを行う必要があり

alert($("#myElement").tagName); 

....このような何かをしようとしている...

alert($("#myElement")[0].tagName); 
+0

のアラートにある賭けは、おそらく望ましいだろうあなたの例の構文。 –

+0

[jQuery docs](http://docs.jquery.com/Core/get#index) "$(this).get(0)と呼ばれるこの関数は、角括弧表記を使用するのと同じです$(this)[0]のようなjQueryオブジェクト自体です。 – jessegavin

1

ページをした後、あなたのスクリプトを実行していることを確認しますレンダリングされる。スクリプトがページの一番上にあり、すぐに実行され、DIVがそのスクリプトの下にある場合、DIVはまだ存在しません。

1

あなただけIEでそれを見ている場合は、DivXのウェブプラグインのバグが考えられます。

http://drupal.org/node/1038058

問題は次のリリースで修正された」と言うのDivXサイト上で確認されています"(2011年4月)。

http://labs.divx.com/node/16824

基本的に、バグがDivXのは、タグ名を小文字にしようとインターセプトをel.appendChild()関数を置き換え、それがテキストノードであるかどうかをチェックする気にしないことです。 $('body').append('hi!')のようなことをしようとすると、jQueryが破損します。さらに、SWFObjectを壊す要素を1つ返すことができません。

回避策は、テキストノードまたは複数の最上位要素でappend()を呼び出さないようにすることです。あなたは一連のアイテムを追加している場合:

append($('<div>hi</div><div>there</div>')) 

を使用すると、暗黙のテキストノードを避けるために、トップレベルのdivでそれらをラップしていることを確認します

append($('<div><div>hi</div><div>there</div></div>')) 

ここappendChildが破壊されるのを完全に回避策はあります、バグを共有するinsertBeforereplaceChildに対しても同じアプローチを使用できます。 Divx JSはページが読み込まれてからしばらく挿入されるので、これをポーリングすることができます。

window.fixDivxPlayerBug = function() { 
    var b = document.getElementsByTagName('body')[0]; 
    if (window['ReplaceVideoElements'] && ! b.appendChildDivx){ 
     b.appendChildDivx = b.appendChild; 
     b.appendChild = function (el) { 
      if(el.tagName == null) { 
       var wrap = document.createElement('div'); 
       wrap.appendChild(el); 
       b.appendChildDivx(wrap); 
      } 
      else { 
       b.appendChildDivx(el); 
      } 
      return el; 
     }; 
    } 
}; 
関連する問題