HTML 在服务器上运行时在 jQuery 中显示代码而不是字符

html showing code instead of character in jquery when running on server

本文关键字:代码 字符 显示 服务器 运行时 jQuery HTML      更新时间:2023-09-26

>我下面有一个页面,它使用jquery来附加一些html。它只是在指定的 DIV 中附加一个输入标签

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script src="../../jquery-1.10.2.min.js" type="text/javascript" xml:space="preserve"></script>
    <script type="text/javascript" xml:space="preserve">
    var i = 0;
    function test(){
        var totalQuantity = '<input type="number" name="order' + i + '.totalQuantity" />';
        $(".test").append(totalQuantity);
        i++;
    }
    </script>
  </head>
  <body>
    <div class="test"></div>
    <input type="button" onclick="test()" value="Add" />
  </body>
</html>

当我使用 spring 在 tomcat 的服务器上运行它时,在 inspect 元素上,javascript 变成这样的:

var totalQuantity = '<input type="number" name="order&#39;+i+ &#39;.totalQuantity" />';

所有 ( ' ) 字符替换为代码 (#&39)。

问题到底出在哪里?为什么它不显示字符 ( ' ) 而是显示其 html 代码?

这是使用 spring 的问题吗,因为当我单独(不在容器或 spring 框架中)打开这个 html 文件时,它工作正常。

虽然这是一种解决方法,但我认为这是将javascript插入html的正确方法。

将你的javascript移动到一个外部文件中,这样任何预处理你的HTML都不会触及你的javascript。