我有一个接受来自推送通知的数据的函数,并将其格式化为json,如下所示:
{
"sent": "02/17/2017",
"title": "Some Entry",
"body": "The main message here",
"picture": "http://example.com/me.jpg",
"phone": "555 641-6547"
}, {
"sent": "02/13/2017",
"title": "Some Other Stuff",
"body": "Main content here",
"link": "http://mycom.com",
"phone": "555 555-6200"
}
如您所见,他们可能有也可能没有所有可用的名称/价值对。
代码用于在模态弹出窗口中显示引导程序:
function show8(arr) {
alert('here ** ' + arr); // lets you see incoming data
arr = '[' + arr + ']';
var i = 50 ;
var out = '';
out += '<div class="panel-group no_wrap widget uib_w_' + i + ' d-margins" data-uib="twitter%20bootstrap/accordion" data-ver="1" ';
i++ ;
out += 'id="bs-accordion-11">';
$.each(JSON.parse(arr), function(idx, obj) {
out += '<div class="panel widget uib_w_' + i + ' panel-info" data-uib="twitter%20bootstrap/collapsible" data-ver="1">';
i++ ;
out += '<div class="panel-heading"><h4 class="panel-title">';
out += '<a class="accordion-toggle" data-toggle="collapse" href="#bs-accordion-group-' + i + '" data-parent="#bs-accordion-11">';
out += '<small>' + obj.sent + '</small><br><strong><big>' + obj.title + '</strong></big><br>';
out += '</a></h4></div>';
out += '<div id="bs-accordion-group-' + i + '" class="panel-collapse collapse">';
i++ ;
out += '<div class="panel-body"><div class="col uib_col_' + i + ' single-col" data-uib="layout/col" data-ver="0">';
i++ ;
out += '<div class="widget-container content-area vertical-col">';
/*
if (obj.picture.length > 0 ) {
out += '<div class="widget uib_w_' + i + ' scale-image d-margins" data-uib="media/img" data-ver="0">';
i++ ;
out += '<figure class="figure-align"><img src="' + obj.picture + '"></figure></div>';
}
*/
out += '<p>' + obj.body + '</p><br><br>';
/*
if (obj.phone.length > 0) {out += 'Call: <br><button class="btn widget uib_w_' + i + ' d-margins btn-xs btn-primary" ';
out += 'data-uib="twitter%20bootstrap/button" data-ver="1" ';
out += 'onclick= "placeCall(\'' + obj.phone + '\')">' + obj.phone + '</button><br>';}
i++;
if (obj.link.length > 0) {out += 'Website: <br><button class="btn widget uib_w_' + i + ' d-margins btn-xs btn-primary" ';
out += 'data-uib="twitter%20bootstrap/button" data-ver="1" ';
out += 'onclick= "viewPage(\'' + obj.link + '\')">' + obj.link + '</button><br>';}
i++;
*/
out += '<span class="uib_shim"></span></div></div></div></div></div>';
});
out += '</div>';
$(".recent").html(out);
$(".uib_w_8").modal("toggle");
}
如果您取消注释任何已注释的代码,列表会爆炸并无法显示。 if(val.length&gt; 0)识别出值在那里并且它有内容,但不会显示内容。
我在这里缺少什么?
答案 0 :(得分:0)
如果没有图片键,则会失败:
if (obj.picture.length > 0 ) {
如果您在控制台中查看,您会看到以下内容:
无法读取未定义的长度
将其更改为:
if ((obj.picture) && (obj.picture.length > 0 )) {
与此相同:
if (obj.link.length > 0) {
obj.link
并不总是存在,请将其更改为
if ((obj.link) && (obj.link.length > 0)) {