如果不存在JSON数据,如何隐藏div

时间:2019-02-22 17:25:43

标签: javascript jquery json datatable bootstrap-4

我有一个本地JSON文件,它将数据渲染到DataTable中。我正在建立人们的个人资料页面,并生成了一些选项卡(通过Bootstrap),用户可以单击这些选项卡-即点击“语言”标签即可显示该人的语言能力。

我想这样做,以便如果一个人没有数据(例如,没有语言技能),那么该div的标签就会被隐藏。我认为浏览网页的用户将无法查看数据。

我认为我必须做类似if no-data $("#div-tab").hide()的事情,但是我不知道如何将其放入我的代码中(见下文)。

JS代码段:

import $ from 'jquery';
import admData from '../JSON/adm.json';
import DataTable from 'datatables.net';

var moment = require('moment');

function loadAdm() {
    let admText = admData.d.results
    .filter(x => x.phv === "")
    .map(function(val) {
        return {
            "Ct": val.ct,
            "St": val.st
        }
    })
    if (!admText) $("#adm-id").hide();

    $('#adm-table').DataTable({
        columns: [
            { data: "Ct" },
            { data: "St" },
            ... // -------------- irrelevant info

HTML-标签

<ul class="nav nav-tabs" id="myTab" role="tablist">
    <li class="nav-item">
      <a class="nav-link" id="adm-tab" data-toggle="tab" href="#adm" role="tab" aria-controls="adm-aria" aria-selected="false">Adm</a>
    </li>

1 个答案:

答案 0 :(得分:3)

由于admText是一个数组,因此永远不会为假,因此条件

if (!admText) 

永远不会是真的。

您应该检查数组是否有任何元素,所以

if (!admText.length)
//stuff