我有一个类似于:
的数组var Arr = [
{ forname: 'John', surname: 'Doe', email: 'johndoe@gmail.com', website: 'www.johndoe.com', phone: '0123456789', img: 'img/johndoe.jpg' },
{ forname: 'Jane', surname: 'Doe', email: '', website: 'www.janedoe.com', phone: '0123456789', img: 'img/janedoe.jpg' },
]
我所做的是用id="#caption"
$('#caption').html(e[f].forname + ' ' + e[f].surname + '<br>' + e[f].email + '<br>' + e[f].website + '<br>' + e[f].phone);
e
和f
是通过函数传递的参数,它们选择每个数组对象。我现在遇到的问题是,当我在标题div中得到两者的数据时,它看起来像:
因为Jane Doe
没有电子邮件地址。我不知道谁和哪些领域有价值。我想要做的是,没有值的字段会删除双<br>
。
谢谢!
答案 0 :(得分:1)
你可以使用一些技巧
[
e[f].forname+" "+e[f].surname,
e[f].email,
e[f].website,
e[f].phone
].filter(function(n){ return n != undefined && n != ''; }).join('<br/>');
将跳过任何空值,并且不会添加双重
答案 1 :(得分:1)
尝试而不是使用<br>
块(表示换行符的位置)使用<div>
s(表示行的位置)。与<p>
aragraph类似,由于默认的display: block
属性,它们各自使用一行,但默认格式属性较少。
答案 2 :(得分:0)
而不是
+ e[f].email + '<br>' +
试
+ (e[f].email ? e[f].email + '<br>' : '') +
仅当有电子邮件时才会插入email + '<br>'
。
为所有字段执行此操作。编辑
$('#caption').html(
e[f].forname + ' ' + (e[f].surname ? e[f].surname + '<br>' : '') +
(e[f].email ? e[f].email + '<br>' : '') +
(e[f].website ? e[f].website + '<br>' : '')
(e[f].phone ? e[f].phone + '<br>' : ''
);
答案 3 :(得分:0)
如果是空字符串:
$('#caption').html(e[f].forname + ' ' + e[f].surname + '<br>' + e[f].email + (( e[f].email=="")?"":'<br>') + e[f].website + '<br>' + e[f].phone);
(如果它为null,则可以检查四个空值)
只检查它是否为空并且是否为空 - &gt;不要放<br>
只需使用tenary operator。