登录以便在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("<span>zzzzz</span>");
});
</script>
</head>
<body>
<div>
</div>
</body>
</html>
答案 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("<span>zzzzz</span>");
});
]]>
</script>
</head>
<body>
<div>
</div>
</body>
</html>
或者,如果您仍然希望按照目前的方式添加zzzzz,请在$("div").append("<span>yyyyy</span>");
行附近添加CDATA分隔符。