[英]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.