【问题标题】:How to hide div if JSON data doesn't exist如果 JSON 数据不存在,如何隐藏 div
【发布时间】:2019-07-16 20:26:00
【问题描述】:

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

我想这样做,如果一个人没有数据(例如没有语言技能),那么该 div 的选项卡将被隐藏。我认为如果没有可点击的内容,浏览该页面的用户将无法看到数据。

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

JS sn-p:

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>

【问题讨论】:

    标签: javascript jquery json datatable bootstrap-4


    【解决方案1】:

    由于admText是一个数组,它永远不会是假的,所以条件

    if (!admText) 
    

    永远不会是真的。

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

    if (!admText.length)
    //stuff
    

    【讨论】:

    • 成功了!您的答案解释清楚且易于实施。谢谢!
    猜你喜欢
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 2018-10-17
    相关资源
    最近更新 更多