次のJavaScriptコードがあります。
var html = '<div class="col-lg-4 col-references" idreference="'+response+'"><span class="optionsRefer"><i class="glyphicon glyphicon-remove delRefer" style="color:red; cursor:pointer;" data-toggle="modal" data-target="#modalDel"></i><i class="glyphicon glyphicon-pencil editRefer" data-toggle="modal" data-target="#modalRefer" style="cursor:pointer;"></i></span><div id="contentRefer'+response+'">'+refer_summary+'</div><span id="nameRefer'+response+'">'+refer_name+'</span></div>';
$("#references").append(html);
このコードを実行すると、refer_summary
変数には実際には<b>
、<i>
などのHTMLタグを含む可能性のある文字列が含まれますが、これらのタグはレンダリングされずにページに表示されます動作。
たとえば、ページでは実際にコンテンツを太字にする代わりに<b>
と表示されます。
値が追加されたときにHTMLタグをレンダリングするにはどうすればよいですか?
私のDjangoテンプレートでは{% autoescape off %}{{content}}{% endautoescape %}
を使用しているため、最初にページをロードすると、コンテンツは太字などで正しくレンダリングされます。しかし、 javascript?
助けてくれてありがとう!
document.write()を使用してHTMLをレンダリングできます
document.write('<html><body><h2>HTML</h2></body></html>');
ただし、既存のHTML文字列を追加するには、HTML文字列を挿入するノード/タグのIDを取得する必要があります。
これを実現できる方法は2つあります。
DOMの使用-
var tag_id = document.getElementById( 'tagid'); var newNode = document.createElement( 'p'); newNode.appendChild(document.createTextNode( 'html string')); node.appendChild(newNode);
InnerHTMLの使用-
var tag_id = document.getElementById( 'tagid'); tag_id.innerHTML( 'HTML string');
これがお役に立てば幸いです。ありがとう
次のようにHTMLを追加する前に$ .parseHTMLを使用します
var html = '<div class="col-lg-4 col-references" idreference="'+response+'"><span class="optionsRefer"><i class="glyphicon glyphicon-remove delRefer" style="color:red; cursor:pointer;" data-toggle="modal" data-target="#modalDel"></i><i class="glyphicon glyphicon-pencil editRefer" data-toggle="modal" data-target="#modalRefer" style="cursor:pointer;"></i></span><div id="contentRefer'+response+'">'+refer_summary+'</div><span id="nameRefer'+response+'">'+refer_name+'</span></div>';
html = $.parseHTML( html);
$("#references").append(html);
特定のdivにIDを割り当て、それに応じて特定のdivでUIを処理/変更する必要があります。
与えられた ここ は優れた説明です。
JavaScriptのdocument.createRange().createContextualFragment
を使用できます。
const frag = document.createRange().createContextualFragment('<div>One</div><div>Two</div>');
console.log(frag);
/*
#document-fragment
<div>One</div>
<div>Two</div>
*/