0

对 json 来说非常新。

碰到一个轻微的颠簸。

我有一个提要,如果没有注释数据,它会将该字符串返回为“未定义”

我只是想删除“未定义”文本并将其留空。

这是我的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 + "";

这是我的提要样本

   var data={
"users": [
    {
        "member": "first name",
        "party": "F",
        "state": "Ala.",


    },

任何帮助表示赞赏,谢谢!

4

3 回答 3

1

使用in运算符来测试条件中的存在性,例如

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 || ""

请注意,当您在字符串连接中使用此表达式时,您必须将其括在括号中。

于 2013-09-10T19:32:57.777 回答
0

如果实际值是假的或未定义的,您可以使用(data.users[0].commentnotes || '')默认为空字符串。

于 2013-09-10T19:30:49.827 回答
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; 
于 2013-09-10T19:31:15.057 回答