Javascript 将\n换行符转换为HTML<;BR>;换行符
我有一个简单的想法,就是将ajax JSON调用中的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
\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);