对于json来说很新鲜。
轻微撞击。
我有一个Feed,如果没有注释的数据,它会将该字符串作为“undefined”返回
我只想删除“未定义”文本并将其保留为空。
这是我的js
document.getElementById("tooltipwrap0").innerHTML = '<span style="font-size:22px; font-weight:600;">' + data.users[0].member + " " + data.users[0].party + "-" + data.users[0].state + "<br/>" + '<span style="font-size:18px; font-weight:300;">' + data.users[0].commentnotes + "";
这是我的Feed的一个示例
var data={
"users": [
{
"member": "first name",
"party": "F",
"state": "Ala.",
},
感谢任何帮助,谢谢!
答案 0 :(得分:1)
使用in
operator测试条件是否存在,例如
if ("commentnotes" in data.users[0])
// append data.users[0].commentnotes to your string
但是,由于它会产生的undefined
值是假的,你只需尝试获取它并在没有任何内容时使用空字符串:
data.users[0].commentnotes ? data.users[0].commentnotes : ""
可以缩短为
data.users[0].commentnotes || ""
请注意,当您在字符串连接中使用此表达式时,必须将其包装在括号中。
答案 1 :(得分:0)
如果实际值是假的或未定义的,您可以使用(data.users[0].commentnotes || '')
默认为空字符串。
答案 2 :(得分:0)
试试这个:
var innerHTML = '<span style="font-size:22px; font-weight:600;">' + data.users[0].member + " " + data.users[0].party + "-" + data.users[0].state + "<br/>" + '<span style="font-size:18px; font-weight:300;">';
if (data.users[0].commentnotes){
innerHTML += data.users[0].commentnotes;
}
document.getElementById("tooltipwrap0").innerHTML = innerHTML;