无法打印<> html

时间:2017-11-22 15:14:34

标签: javascript jquery html xml

所以这是关于我以前的一个问题,我想在哪里取代" \ 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);
      }
    });
  });
});

2 个答案:

答案 0 :(得分:2)

您应该使用text()代替html(),例如:

$("#opt").text(response);

否则浏览器会将代码解释为HTML标记,并只显示文本。

希望这有帮助。

更新:

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:0)

根据我的要求调整Zakaria Acharki的答案,以获得最终结果: response = response.replace(/</g, "&lt;").replace(/>/g,"&gt;").replace(/(\n)/g,"<br>");