xhtml和jQuery是否有简单的方法来追加html?

时间:2017-12-02 09:51:34

标签: jquery append xhtml

登录以便在jQuery中构建html代码并附加到DOM而不处理如下特殊html字符的简单方法。追加yyyy并不起作用。有什么简单的方法吗?

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Title</title>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<script>
$(document).ready(function(){


            $("div").append("xxxxx");
            $("div").append("<span>yyyyy</span>");
            $("div").append("&lt;span&gt;zzzzz&lt;&#x2F;span&gt;");


}); 



</script>


</head>
<body>
        <div>


        </div>



</body>
</html>

1 个答案:

答案 0 :(得分:1)

当你使用XML时,yyyyy是解析的字符数据,即使它在script元素中。 (text/html HTML解析器知道切换到未解析的字符数据,但XML解析器不知道)

因此,您需要在脚本的开头和结尾使用CDATA分隔符<![CDATA[]]>明确告诉它。所以:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Title</title>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.js"></script>

    <script>
    <![CDATA[

    $(document).ready(function(){
        $("div").append("xxxxx");
        $("div").append("<span>yyyyy</span>");
        $("div").append("&lt;span&gt;zzzzz&lt;&#x2F;span&gt;");
    }); 

    ]]>
    </script>
  </head>
  <body>
    <div>
    </div>
  </body>
</html>

或者,如果您仍然希望按照目前的方式添加zzzzz,请在$("div").append("<span>yyyyy</span>");行附近添加CDATA分隔符。