我有这个简单的想法,将我的\n
换行符从我的ajax JSON调用转换为<br>
,以便正确显示我的数据。
我尝试了很多不同的方法来执行转换,但我一直收到错误说:
Uncaught TypeError: data.replace is not a function
问题似乎是我打电话的方式:
var incident = incident.replace(/\n/g, "<br />");
从我在论坛上看到的情况来看,这就是我们假设使用.replace
的方式,但我并没有理解为什么它不喜欢它。
我也尝试过这样做:
"<td colspan='3'>"+incident.Impact.replace(/\n/g, "<br />")+"</td>"+
这样可行,但如果该字段为空,则返回错误,指出它无法读取未定义的.replace
。有人会有任何想法吗?
完整代码:
$.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>");
})
}
});
答案 0 :(得分:2)
您正在尝试对对象使用字符串方法,而不是对该对象中的属性值。
没有Object.replace()
因此会抛出错误
同样undefined.replace()
也会导致错误
据推测,您只需修复一些属性值,但首先必须确保在使用replace()
尝试
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);
答案 1 :(得分:-2)
您的代码存在问题:
var incident = incident.replace(/\n/g, "<br />");
您正在重新声明变量事件。尝试删除重新声明:
incident = incident.replace(/\n/g, "<br />");