简体   繁体   English

如何使用JavaScript显示和隐藏嵌套的DIV

[英]How to show and hide nested DIVs using javascript

I have two divs like following: 我有两个div,如下所示:

 <div id="soil-trigger" 
                    onclick="getWidgetData('soil-trigger'); getWidgetSoilChart();"></div>

 <div id="water-trigger" 
                    onclick="getWidgetData('water-trigger'); getWidgetWaterChart();"></div>

Clicking on one div (ie: soil-trigger/water-trigger) generates a chart under time-series panel. 单击一个格(即:土壤触发/水触发)可在时间序列面板下生成一个图表。 For doing this I am using follwoing JS: 为此,我正在使用follwoing JS:

 function getWidgetData(name){

        var curEl = document.getElementById('time-series');
        curEl.className = "active";

        var el7 = document.getElementById('system-series');
        var el8 = document.getElementById('cluster-series');

        var curE2 = document.getElementById('system-health');
        var curE3 = document.getElementById('cluster-info');

        curE2.className = "";
        curE3.className = "";

        el7.className = "hide";
        el8.className = "hide";

        widgetEl = document.getElementById("soil-chart");

        widgetEl5 = document.getElementById("water-chart");


        var el = document.getElementById('soil-chart');
        el.className = "";

        var el5 = document.getElementById('water-chart');
        el5.className = "";

        if(name == 'soil-trigger'){
         widgetEl.innerHTML = document.getElementById('soil-chart').outerHTML; 

            el.className = "show";
            el5.className = "hide";

              }

        if(name == 'water-trigger') {

        widgetEl5.innerHTML = document.getElementById('water-chart').outerHTML; 
    el5.className = "show";
        el.className = "hide";

                      }
}

My code that I provided here is working like this: When I click on soil-trigger it is showing chart under time-series for soil-data, but not showing anything under system-series and cluster-series. 我在这里提供的代码是这样工作的:当我单击“土壤触发”时,它显示的是土壤数据在时间序列下的图表,而在系统序列和集群序列下则未显示任何内容。

Again, when I click on water-trigger it is showing chart under time-series for water-data, but not showing anything under system-series and cluster-series. 同样,当我单击“水触发”时,它会在时间序列下显示水数据图表,但在系统序列和群集序列下却什么也没有显示。

What I actually need when I will click on soil-trigger it will show three different charts under time-series, system-series, and cluster-series for soil data. 当我单击“土壤触发”时,实际上需要的是在土壤数据的时间序列,系统序列和聚类序列下显示三个不同的图表。 Again when I will click on water-trigger it will show three different charts under time-series, system-series, and cluster-series for water data. 同样,当我单击“水触发”时,它将在水数据的时间序列,系统序列和群集序列下显示三个不同的图表。

How can I achieve that by changing my code. 如何通过更改代码来实现。 Any help please. 请帮忙。

Thanks 谢谢

function getWidgetData(name) {
    var timeSeries = document.getElementById('time-series'),
        systemSeries = document.getElementById('system-series'),
        clusterSeries = document.getElementById('cluster-series'),
        systemHealth = document.getElementById('system-health'),
        clusterInfo = document.getElementById('cluster-info'),
        waterChart = document.getElementById("water-chart"),
        soilChart = document.getElementById('soil-chart');

    timeSeries.className = "active";
    systemHealth.className = "";
    clusterInfo.className = "";
    systemSeries.className = "hide";
    clusterSeries.className = "hide";
    soilChart.className = "";
    waterChart.className = "";

    if (name == 'soil-trigger') {
        soilChart.innerHTML =soilChart.outerHTML;
        soilChart.className = "show";
        waterChart.className = "hide";
    }

    if (name == 'water-trigger') {
        waterChart.innerHTML = waterChart.outerHTML;
        waterChart.className = "show";
        soilChart.className = "hide";
    }
}

Your code can be broken down like this, its a quick re-factoring and prone to errors. 您的代码可以像这样分解,它的重构速度很快并且容易出错。 May be you can debug this yourself now. 也许您现在可以自己调试它。

soilChart.innerHTML =soilChart.outerHTML;//??????????

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM