所以这是关于我以前的一个问题,我想在哪里取代" \ n"用" br"使用JS在HTML中标记。 对于同一页面,如果有人传递XML或RPC查询,我想返回XML输出。
典型的XML输出如下所示:
<racks>\n
<rack>\n
<rack-name>0</rack-name>\n
<chassis>\n
<serial-number>XYZ789</serial-number>\n
</chassis>\n
</rack>\n
</racks>\n
</diag>\n
</data>\n
</rpc-reply>\n
**我希望能够以这种方式打印它:(用br替换\ n)
<racks>
<rack>
<rack-name>0</rack-name>
<chassis>
<serial-number>XYZ789</serial-number>
</chassis>
</rack>
</racks>
</diag>
</data>
</rpc-reply>
**
但是我只在输出中得到纯文本,这是0和XYZ789有很多\ n&n;#。
JS:
$(function() {
$('button').click(function() {
$.ajax({
url: '/runCommand_query',
data: $('form').serialize(),
type: 'POST',
success: function(response) {
response = response.replace(/(\n)/g, "<br>");
console.log(response);
$("#opt").html(response);
},
error: function(error) {
console.log(error);
$("#opt").val(error);
}
});
});
});
答案 0 :(得分:2)
您应该使用text()
代替html()
,例如:
$("#opt").text(response);
否则浏览器会将代码解释为HTML标记,并只显示文本。
希望这有帮助。
更新:
var response = "<racks>\n<rack>\n<rack-name>0</rack-name>\n<chassis>\n<serial-number>XYZ789</serial-number>\n</chassis>\n</rack>\n</racks>\n</diag>\n</data>\n</rpc-reply>\n";
$('#opt').text(response).wrap('<pre />');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="opt"></div>
&#13;
答案 1 :(得分:0)
根据我的要求调整Zakaria Acharki的答案,以获得最终结果:
response = response.replace(/</g, "<").replace(/>/g,">").replace(/(\n)/g,"<br>");