这是我的代码无效:
$.each( gon.jbuilder, function (counter, lender) {
var contentString = '<div id="content">'+
'<div id="siteNotice">'+
'</div>'+
'<h1 id="firstHeading" class="firstHeading">'+ lender.email + '</h1>'+
'<div id="bodyContent">'+
'<ul>' +
if (inventory.hasOwnProperty('description')) {
$.map( lender.inventories, function (inventory, counter) {
return '<li>' + inventory.itemlist_id + ': ' + inventory.description + '</li>';
}).join('') +
} else {
$.map( lender.inventories, function (inventory, counter) {
return '<li>' + inventory.itemlist_id + '</li>';
}).join('') +
}
'</ul>' +
'</div>'+
'</div>';
我得到的错误是Uncaught SyntaxError: Unexpected token if
。我不确定如何正确编写if
语句以使其正常工作。基本上,我创建了一系列contentString
变量,每个变量lender
一个。在每个contentString
中,$map
正在为父inventories
生成所有子lender
的列表。有些inventories
有descriptions
所以,如果这是真的,我也想打印描述。但如果没有,我想跳过它。
更新新代码
感谢您的评论!所以这就是我现在所拥有的:
$.each( gon.jbuilder, function (counter, lender) {
var contentString = '<div id="content">'+
'<div id="siteNotice">'+
'</div>'+
'<h1 id="firstHeading" class="firstHeading">'+ lender.email + '</h1>'+
'<div id="bodyContent">'+
'<ul>' +
$.map( lender.inventories, function (inventory, counter) {
if (inventory.description == "") {
var description = ''
} else {
var description = ': ' + inventory.description
};
return '<li>' + inventory.itemlist_id + description + '</li>';
}).join('') +
'</ul>' +
'</div>'+
'</div>';
虽然它不再抛出错误,但if
语句似乎无法正常工作,即使inventory.description
为空,也会返回: null
,当我希望它什么都不返回时。
答案 0 :(得分:0)
这对你有帮助......
var contentString = '<div id="content">'+
'<div id="siteNotice">'+
'</div>'+
'<h1 id="firstHeading" class="firstHeading">'+ lender.email + '</h1>'+
'<div id="bodyContent">'+
'<ul>' ;
if (inventory.hasOwnProperty('description')) {
$.map( lender.inventories, function (inventory, counter) {
contentString += '<li>' + inventory.itemlist_id + ': ' + inventory.description + '</li>';
}).join('') ;
} else {
$.map( lender.inventories, function (inventory, counter) {
contentString += '<li>' + inventory.itemlist_id + '</li>';
}).join('') ;
}
contentString + '</ul>' +
'</div>'+
'</div>';
并在最后一个返回变量内容String
答案 1 :(得分:0)
最后的答案,感谢大家的评论!大量来自@Felix的评论。
$.each( gon.jbuilder, function (counter, lender) {
var contentString = '<div id="content">'+
'<div id="siteNotice">'+
'</div>'+
'<h1 id="firstHeading" class="firstHeading">'+ lender.email + '</h1>'+
'<div id="bodyContent">'+
'<ul>' +
$.map( lender.inventories, function (inventory, counter) {
if (inventory.description == null) {
var description = ''
} else {
var description = ': ' + inventory.description
};
return '<li>' + inventory.itemlist_id + description + '</li>';
}).join('') +
'</ul>' +
'</div>'+
'</div>';