如何通过JavaScript隐藏/显示平铺中的div?
我在一个使用Struts 2和Tiles 3的JSP站点上工作,它有不同的选项卡,每个选项卡显示一个带有表的div。我需要添加一个有两个表的选项卡,或者根据按钮显示一个或另一个 是否可以通过JS显示/隐藏它们?我已经尝试了一段时间,而Tiles似乎并不关心我在JS中所做的事情 我一直在用这个,有一些变化,但到目前为止没有运气。我对JS有点陌生,所以我可能做错了什么,或者Tiles有一种方法可以在运行时动态隐藏/显示我不知道的东西如何通过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
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'将其可见性设置为隐藏代码>但它不起作用。