首页 > 技术文章 > json中包含html标签,样式改变问题

lianyiu 2020-06-23 10:22 原文

$.each(result.rows, function (i, data) {                  
                    $("#dlhot").append("<dd >" +
                        "<p class='new_rq'>" +
                        "<span>" + data.TimesSys + "</span>热度" +
                        "</p>" +
                        "<p class='newrf_tx'>" +
                        "<a href='#' title='" + data.KldgQuestion + "'onclick='OpenLishow(" + data.myPK + ")'>" + data.KldgQuestion + "</a>" +
                        "<span title='" +data.KldgAnswer+ "'>" + data.KldgAnswer + "</span>" +
                        "</p>" +
                        "<p class='newrf_down'><span>" + data.Mtime + "</span></p>" +
                        "<p style='float:left;font-size:12px;color:#999;margin-left:10px;'><span>" + data.SortBN + "</span></p>" +
                        "<p style='float:left;font-size:12px;color:#999;margin-left:10px;'><span>" + data.DeptName + "</span></p>" +
                        "<a/></dd>");
                });
data.KldgAnswer的数据是用CKEDITOR编辑的,带有<p>的时候,<span>就乱了。
解决办法:
先把data.KldgAnswer处理一下
var s=data.KldgAnswer.replace(/&nbsp&#59/g, '').replace(/<br \/>/g, '\n').replace(/<br>/g, '\n').replace(/&nbsp;/g, " ").replace(/&rdquo/g, '').replace(/&ldquo/g, '').replace(/&rarr/g, '').replace(/&hellip;/g, '').replace(/&#59;/g, '').replace(/&mdash/g, '').replace(/&alpha/g, 'α').replace(/<p>/g, '').
        replace('</p>', '').replace(/<br\/>/g, '\n').replace(/<.+?>/g, '');

去掉所有html的标签,显示就正常了。

推荐阅读