Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将\n换行符转换为HTML<;BR>;换行符_Javascript_Jquery - Fatal编程技术网

Javascript 将\n换行符转换为HTML<;BR>;换行符

Javascript 将\n换行符转换为HTML<;BR>;换行符,javascript,jquery,Javascript,Jquery,我有一个简单的想法,就是将ajax JSON调用中的\n换行符转换为,以便正确显示我的数据 我尝试了许多不同的方法来执行转换,但我一直收到一个错误,即: Uncaught TypeError: data.replace is not a function 这可以工作,但如果字段为空,则返回一个错误,说明它无法读取未定义的。请替换。有人有什么想法吗 完整代码: $.ajax({ url: this.basePath() + '/GDI_PROD_Incidents?$filter=État

我有一个简单的想法,就是将ajax JSON调用中的
\n
换行符转换为

,以便正确显示我的数据

我尝试了许多不同的方法来执行转换,但我一直收到一个错误,即:

Uncaught TypeError: data.replace is not a function 这可以工作,但如果字段为空,则返回一个错误,说明它无法读取未定义的
。请替换
。有人有什么想法吗

完整代码:

$.ajax({
    url: this.basePath() + '/GDI_PROD_Incidents?$filter=ÉtatValue%20ne%20%27Fermé%27&$orderby=PrioritéValue desc',
    dataType: 'json',
    cache: false,
    success: function (data) {

        $.each(data.d.results, function (index, incident) {
        var incident = incident.replace(/\n/g, "<br />");

        $('body').append(

          "<table border='1' width='800' >"+
          "<tr  bgcolor='#9aff99' align='center'>"+
          "<td width='800px' colspan='4'><strong>Transfert de connaissances</strong></td>"+
          "</tr>" +
          "<tr bgcolor='#fff'>"+
          "<td width='165'>Billet:</td>"+
          "<td>"+incident.Incident+"</td>"+
          "<td width='165'>Priorité:</td>"+
          "<td>"+incident.PrioritéValue+"</td>"+
          "</tr>"+
          "<tr bgcolor='#fff'>"+
          "<td width='165'>Description:</td>"+
           "<td colspan='3'>"+incident.Description+"</td>"+
           "</tr>"+
           "<tr bgcolor='#fff'>"+
           "<td colspan='4' width='800px' bgcolor='#9aff99' align='center'>Détails</td>"+
           "</tr>"+
           "<tr bgcolor='#fff'>"+
           "<td width='165'>Impact:</td>"+
           "<td colspan='3'>"+incident.Impact+"</td>"+
           "</tr>"+
           "<tr bgcolor='#fff'>"+
           "<td width='165'>Dépannage</td>"+
           "<td colspan='3'>"+incident.Dépanage+"</td>"+
           "</tr>"+
           "<tr bgcolor='#fff'>"+
           "<td colspan='4' width='800px' bgcolor='#9aff99' align='center'>Suivi</td>"+
           "</tr>"+
           "<tr bgcolor='#fff'>"+
           "<td width='165'>Prochain Suivi:</td>"+
           "<td colspan='3'>"+incident.Suivi+"</td>"+
           "</tr>"+
           "<tr bgcolor='#fff'>"+
           "<td width='165'>Ressource:</td>"+
           "<td colspan='3'>"+incident.Ressources+"</td>"+
           "</tr>"+
           "<tr bgcolor='#fff'>"+
           "<td width='165'>Prime:</td>"+
           "<td colspan='3'>"+incident.ResponsableValue+"</td>"+
           "</tr>"+
           "</table>"+
           "<br><br>");

        })

    }
});
$.ajax({
url:this.basePath()+'/GDI_PROD_events?$filter=ÉtatValue%20ne%20%27Fermé%27&$orderby=PrioritéValue desc',
数据类型:“json”,
cache:false,
成功:功能(数据){
$。每个(数据d.结果、功能(索引、事件){
var事件=事件。替换(/\n/g,“
”); $('body')。追加( ""+ ""+ “认可转让”+ "" + ""+ “钢坯:”+ “”+事件。事件+“”+ “优先权”:+ “”+事件。优先级值+“”+ ""+ ""+ “说明:”+ “”+事件。描述+“”+ ""+ ""+ “Détails”+ ""+ ""+ “影响:”+ “”+事件影响+“”+ ""+ ""+ “Dépannage”+ “”+事件。事件处理+“”+ ""+ ""+ “Suivi”+ ""+ ""+ “Prochain Suivi:”+ “”+事件。Suivi+“”+ ""+ ""+ “资源:”+ “”+事件。资源+“”+ ""+ ""+ “素数:”+ “”+事件。责任值+“”+ ""+ ""+ “

”; }) } });
您的代码存在以下问题:

    var incident = incident.replace(/\n/g, "<br />");
var incident=incident.replace(/\n/g,“
”);
您正在重新说明可变事件。尝试删除重新声明:

    incident = incident.replace(/\n/g, "<br />");
incident=incident.replace(/\n/g,“
”);
您试图在对象上使用字符串方法,而不是在该对象内的属性值上

没有
对象。replace()
,因此将引发错误

类似地,
未定义。replace()
也会导致错误

您可能只需要修复几个属性值,但首先必须确保这些值已定义并且是字符串,然后再使用
replace()

试一试

函数转换中断(str){
如果(!str){
返回“”;//不希望“未定义”打印到页面中
}
//如果它不是字符串,请按原样返回
如果(str的类型!=='string'){
返回str;
}否则{
返回str.replace(/\n/g,“
”) } } 事件描述=转换中断(事件描述);
可能重复的字段需要分别替换每个字段。不能一次替换整个对象中的所有内容。更好的是,在CSS中使用
td{white space:pre wrap;}
规则,这样您甚至不需要
tags.test值来确保它已定义并且是字符串,然后再使用
replace()
它不是重新声明。。。变量正在函数闭包中本地声明
    var incident = incident.replace(/\n/g, "<br />");
    incident = incident.replace(/\n/g, "<br />");
function convertBreak(str){
   if(!str){
     return ''; // don't want `undefined` printing into page
   }
   // if it's something other than string, return it as is
   if( typeof str !=== 'string'){
      return str;
   }else{
     return str.replace(/\n/g, "<br />")
    }
}

incident.Description = convertBreak(incident.Description);