0

更新:問題は私自身のコーディングエラーが原因であり、実際には役に立たなかったため、この質問は閉じる必要があります。

先頭の空白とアンカータグが内部にある場合、IE8とjQuery.html()で問題が発生します。問題を再現するには、次のURLにアクセスしてください。

http://jquery.com/

次に、これをIE8開発者コンソールに入力します。

$('body').html(' test<a href="">foo<a>');

画面に何も印刷されないことに気付くでしょう。コンソールにこれを入力すると、本文の内容が空であることを確認できます。

$('body').html();

ネイティブのinnerHTMLを使用する場合、この問題は発生しません。jQueryはIE8のネイティブinnerHTMLをバイパスし、代わりにjQuery.append()を使用します。これは、IE8が先頭の空白を削除するためです。

なぜこれが起こっているのか誰もが知っていますか?これは既知のバグですか?

4

1 に答える 1

3

Your markup is invalid, it works if you close it,

$('body').html(' test<a href="">foo</a>');

I don't know how jQuery should handle invalid markup here though, so it might still be a bug.

于 2012-06-06T17:46:25.250 に答える