web-dev-qa-db-ja.com

HTMLエンコードされた文字列をテキストではなくHTMLとして追加する

この文字列を追加しようとしています:

<div> hello </div>

hTMLノードとして。ただし、HTMLを追加する代わりに、テキストを追加するだけです。

<div> hello </div>

JQueryに、これをテキストだけでなくHTMLノードとして追加するにはどうすればよいですか?

可能であれば、ネストされたdivとテキストの両方で機能するソリューションが欲しいのですが。

14
zakdances
// This is your string :)
var myString = "&lt;div&gt; hello &lt;/div&gt;";

// This is a way to "htmlDecode" your string... see link below for details.    
myString = $("<div />").html(myString).text();

// This is appending the html code to your div (which you don't have an ID for :P)
$("#TheDivIWantToChange").append(myString);

属性が入力フィールドから読み取られるとHTMLエンコーディングが失われる

23
Timothy Khouri

.createElement('div')を使用して新しいdivを作成できます。次に、新しい要素のHTMLを変更します。

_$(document.createElement('div').html('<p>All new content.</p>'));
_

新しい要素をDOMにアタッチするには、element.append()または.appendTo(element)を使用して、選択した要素に追加します。

0
Kevin M