如何通过JavaScript隐藏/显示平铺中的div?

如何通过JavaScript隐藏/显示平铺中的div?,javascript,html,css,struts2,tiles,Javascript,Html,Css,Struts2,Tiles,我在一个使用Struts 2和Tiles 3的JSP站点上工作,它有不同的选项卡,每个选项卡显示一个带有表的div。我需要添加一个有两个表的选项卡,或者根据按钮显示一个或另一个 是否可以通过JS显示/隐藏它们?我已经尝试了一段时间,而Tiles似乎并不关心我在JS中所做的事情 我一直在用这个,有一些变化,但到目前为止没有运气。我对JS有点陌生,所以我可能做错了什么,或者Tiles有一种方法可以在运行时动态隐藏/显示我不知道的东西 document.getElementById('controlP

我在一个使用Struts 2和Tiles 3的JSP站点上工作,它有不同的选项卡,每个选项卡显示一个带有表的div。我需要添加一个有两个表的选项卡,或者根据按钮显示一个或另一个

是否可以通过JS显示/隐藏它们?我已经尝试了一段时间,而Tiles似乎并不关心我在JS中所做的事情

我一直在用这个,有一些变化,但到目前为止没有运气。我对JS有点陌生,所以我可能做错了什么,或者Tiles有一种方法可以在运行时动态隐藏/显示我不知道的东西

document.getElementById('controlPools').style.display='none';
document.getElementById('controlPools').style.display='inline';
controlPool
div
的名称,包含它的磁贴的名称是
controlPool

这是JSP页面的代码


Tiles与客户端无关,因此,如果您使用JS代码执行某些操作,您已经在使用DOM,但是可以使用Tiles result呈现此文档。无论如何,它不会改变任何东西,只会改变您需要修改的适当样式,以便使用一些JS函数显示/隐藏一些html内容

隐藏:

document.getElementById('controlPools').style.display='none';
document.getElementById('controlPools').style.display='block';

显示:

document.getElementById('controlPools').style.display='none';
document.getElementById('controlPools').style.display='block';

@Roman-C的答案让我思考,它引导我找到了问题的解决方案,部分原因是因为瓷砖

我使用这个JS块将数据提供给我的JSP:

document.getElementById('controlPools').style.display='none';
$.ajax({
        type : "GET",
        url  : "ControlNodesPoolAct.action",
        data : {"pool": pool},
        success : function(result){
          if (result != null && result.length > 0){
            var aux = $("#tabs-11"); 
            aux.html(result);
            //inicializamos la tabla con el plugin de jquery
            $('#tablaNodesPool').DataTable(
                    {
                        "lengthMenu": [[150, 75, 10, -1], [150, 75, 10, "All"]]         
                    }           
            );
            spinner.stop();
            document.getElementById('poolLegend').innerHTML=pool;
          }
        },
        error : function(xhr, errmsg) {
            console.log("error en funcion getMiembrosSnmp " + errmsg); 
            spinner.stop();
        }
    });  
显然,由于DisplayTags是在运行时呈现的,因此在调用函数时div并不存在,所以我需要等到DisplayTags呈现表时div才存在。我移动了
document.getElementById('controlPools').style.display='none'
在某种程度上,我知道表被渲染了,它似乎解决了问题

此更改修复了它:

$.ajax({
        type : "GET",
        url  : "ControlNodesPoolAct.action",
        data : {"pool": pool},
        success : function(result){
          if (result != null && result.length > 0){
            var aux = $("#tabs-11"); 
            aux.html(result);
            //inicializamos la tabla con el plugin de jquery
            $('#tablaNodesPool').DataTable(
                    {
                        "lengthMenu": [[150, 75, 10, -1], [150, 75, 10, "All"]]         
                    }           
            );
            spinner.stop();
            document.getElementById('controlPools').style.display='none';
            document.getElementById('poolLegend').innerHTML=pool;
          }
        },
        error : function(xhr, errmsg) {
            console.log("error en funcion getMiembrosSnmp " + errmsg); 
            spinner.stop();
        }
    });  

Tiles是服务器端的。如果不知道呈现的HTML是什么样子,就不可能提供太多JS建议。我添加了JSP代码,是否也应该添加tiles配置?JSP中没有任何Tile。到底是什么不起作用?在哪里以及如何使用这个js脚本?我有一个带有一些函数的js文件,其中一个可以找到id为nodosPool的
,并且应该使用
document.getElementById('nodosPool').style.display='none'将其可见性设置为隐藏但它不起作用。