3

次のことはご存知の方も多いと思います。

var str = '<img src="path/to/some/image" />'

$('#selector').html(str);

これにより、次の HTML が出力されます。

<div id="selector">
  <img src="path/to/some/image">
</div>

jQuery は XHTML ではなく真の HTML をレンダリングするため、img タグの末尾にある自己終了の「スラッシュ」を削除します。

私の手は XHTML に対して検証する CMS の使用に縛られているため、システム WYSIWYG にコピーまたは作成されるマークアップには、自己終了タグの末尾に「スラッシュ」が含まれている必要があります。

私の苦境は、Bootstrap Form Builderを使用して手早く汚れたフォームを作成していることです。このアプリケーションは、jQuery .html() を使用してレンダリングされた HTML を作成します。そのため、すべての < input > 終了タグのスラッシュが取り除かれています。レンダリングされたコードをコピーして CMS に貼り付けても、公開できません。

.html() が「スラッシュ」を削除しないようにする賢い方法はありますか? または、少なくとも手動で行うことなくスラッシュを元に戻しますか?

4

4 に答える 4

0

実際には、別の回避策はjQuery.html()XMLSerializerおよびそのserializeToStringメソッドに置き換えることです。

これは DOM と innerHTML を使用していませんが、入力を「通常の」XML として扱っているため、すべての単一タグがそのまま保持されます。

ここを参照してください: https://developer.mozilla.org/en-US/docs/Web/API/XMLSerializer

于 2016-10-25T08:48:46.543 に答える
0

これは jQuery の問題ではありません。ネイティブの JavaScriptinnerHTMLメソッドは同じように機能します。また、これは DOCTYPE に依存しません。ブラウザの機能だと思います。

于 2013-07-11T07:39:12.210 に答える