将&字符代码保留在HTML模板中

时间:2018-12-05 19:53:59

标签: javascript jquery html

我有一张带有标签的表:

var labels = ['Hello user, start here', 'E&Y']; //etc

标签以HTML的形式连接起来,例如:

'<p>'+label[i]+'</p>'

所以效果是:

<p>Hello user, start here</p>

,浏览器显示文本'Hello user, start here'。这是一个很好的行为,但我想在另一种情况下也显示标签,如下所示:

<p>Hello user&#44; start here</p>

如此

'Hello user&#44; start here',无需解码。

如何获得理想的效果?

编辑:

我简化了此过程,以向我们清楚地表明我的意思:

var labels = ['Hello user&#44; start here', 'E&amp;Y'];
var label = $( "<p>"+labels[0]+"</p>");
$("body").append(label);

我无法修改标签数组。

2 个答案:

答案 0 :(得分:1)

当您直接将文本放入文本节点时,它不会被解码:document.createTextNode(labels[0])

var labels = ['Hello user&#44; start here', 'E&amp;Y'];

document.body.insertAdjacentHTML(
  "beforeend",
  '<p>'+labels[0]+'</p>'
);

document.body.appendChild(
  document.createTextNode(labels[0])
);

jquery:

var labels = ['Hello user&#44; start here', 'E&amp;Y'];

$("body").append(
  '<p>'+labels[0]+'</p>'
);

$("body").append(
  $("<p>").text(labels[0])
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

答案 1 :(得分:0)

您尝试使用...安全的html代码... &amp;显示为“&”

var labels = ['Hello user&amp;#44; start here', 'E&amp;Y'];