0

jquery で html コンテンツを生成していますが、/> が生成されません。代わりに > を生成します。

$("#myDiv").append('<img src="nothing.jpg" alt="image" />');

this generates:

<img src="nothing.jpg" alt="image">

as you can see it has no />, but > instead

jsfiddle での例

このため、XHTML バリデーターを介して取得できません。

/> を生成する方法はありますか?

そうでない場合、私がそれを持っていない場合、それは大したことですか?

4

1 に答える 1

1

jQuery は HTML を生成しません。DOM を変更します。

次に、innerHTML(おそらく 経由でjQuery(...).html()) または DOM インスペクターを使用して、DOM を HTML にシリアル化します。

HTML モードの場合 (つまり、ドキュメントが として提供されたtext/html場合)、HTML が出力されます。

ドキュメントを XHTML として (つまり を使用してContent-Type: application/xhtml+xml) 提供する場合、ブラウザーは XHTML を提供する可能性がありますが、HTML モードの場合に XHTML を生成する方法は提供しません。

そうでない場合、私がそれを持っていない場合、それは大したことですか?

それは大したことです。マークアップは整形式ではなく、XML パーサーはエラーをスローして停止します。

XHTML の代わりに HTML を使用することをお勧めします。

XML パーサーをターゲットにする場合は、HTML を生成し、それを HTML を解析して XHTML を出力できるサーバー側に渡します。

于 2013-06-03T14:19:12.467 に答える