2011-01-17 2 views
0

ajax呼び出しからHTMLフラグメントを取得しています。私はjQueryを使用しており、フラグメント内のTRだけを必要としています。 TRを見つけるためにjQueryセレクタを使用すると、IEでは何も得られません。親がinnerHTMLを使用しているときにFirefoxがTR文字列とTD文字列を削除する理由

だから私は、私はこれらの2つの方法が唯一のFirefox、TRで、IEで働いていたとTD要素がなくなっているとだけ

$(ajaxString).filter('form').first().html() 

とも

$(ajaxString).filter('form').first()[0].innerHTML 

を試みるかもしれないと思ったの回避策として、スパンが返されます。問題と解決策は何ですか? :-)

<form method="post"> 
<tr> 
    <td><span> stuff </span></td> 
<tr> 
<form> 
+3

「」は、「

」の直接の子でなければなりません。ブラウザがHTMLをDOMに解析すると、無効なタグが消去されます。 –

答えて

3

のようなものを使用することができ、それはDOMの表の終了後にその要素を配置します。

つまり、innerHTMLを使用しているときにそれを削除しないため、最初はHTMLではない部分を解析するときに削除されます。

フォームとテーブルの関係は、「テーブルがフォームにあります」または「フォームがテーブルセルにあります」のいずれかです。

+0

これはちょっとばかだが正しいですが!今回は私の良い本のIE得点のように見えます。 –

+1

特定の方法で完全に間違ったコードを処理するためのブラウザは、いかなるポイントも与えられません。彼らは本当に悪い状況の中でベストを尽くしているだけです。 – Quentin

0

HTMLフラグメントは有効なものである必要があります。 Firefoxのエラーがテーブルの行の周りに包まれ、無効な要素を修正する場合

<form method="post"> 
    <table> 
    <tr> 
     <td><span> stuff </span></td> 
    <tr> 
    </table> 
<form> 

ような何かそして、あなたは

$(ajaxString).find("form").html(); 
+0

テーブル全体を挿入するだけで済むわけではありません。私はそれが今のところ回避策だと思います。ありがとう。 –

関連する問題