簡體   English   中英

json2html當字段不存在時如何排除行

[英]json2html how to exclude line when field doesn't exist

json2html中 ,如果我在JSON中不存在的模板中定義一個元素,則我想“顯示:無;”。 也許更好,只是以某種方式排除該行。

示例模板:

{"tag":"div","children":[
    {"tag":"div","html":"First Name: ${first_name}"},
    {"tag":"div","html":"Middle Name: ${middle_name}"},
    {"tag":"div","html":"Last Name: ${last_name}"}
]}

結果:

First Name: John
Middle Name: 
Last Name: Doe

如果json中不存在中間名,則我不希望中間名具有<div>條目,而是跳過該行。

我想要的是:

First Name: John
Last Name: Doe

一種方法是:

讓div具有ID /類,我建議您以以下格式更改模板布局:

{"tag":"div","class":"container","children":[
  {"tag":"div","class":"field","children":[
      {"tag":"span", "html":"First Name:"},
      {"tag":"span","html":"${first_name}"}
    ]
  },
  {"tag":"div","class":"field","children":[
      {"tag":"span", "html":"Middle Name:"},
      {"tag":"span","html":"${middle_name}"}
    ]
  },
  {"tag":"div","class":"field","children":[
      {"tag":"span", "html":"Last Name:"},
      {"tag":"span","html":"${last_name}"}
    ]
  }
]}

處理完之后,您可以編寫一個小的代碼(jquery),如下所示:

 $(".container div").each(function(){
   var childs = $(this).children();
   if($(childs[1]).is(":empty")){
     $(this).hide();
   }
 });

我認為應該可以。

希望能幫助到你

您也可以在json2html模板中這樣做

{"tag":"div","children":[
   {"tag":"div","html":"First Name: ${first_name}"},
   {"tag":"div","html":"Middle Name: ${middle_name}","class":function(){
      if(!this.middle_name) return("hide");
   }},
   {"tag":"div","html":"Last Name: ${last_name}"}]}

然后只需添加此CSS

.hide {display:none;}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM