我正在开发一个Web应用程序,我有几个表位于ID为ctl00_PlaceHolderLeftNavBar_ctl02_WebTreeView
的主要Div中。现在主要的Div有很多内表和一个内部Div。所以我需要做以下事情: -
tl00_PlaceHolderLeftNavBar_ctl02_WebTreeViewn10Nodes
。这是使用firefox bug观察到的标记: -
现在我通过以下方式完成了我所需要的工作: -
#ctl00_PlaceHolderLeftNavBar_ctl02_WebTreeView > table:not(:nth-child(11)) {
display: none;
}
但这不是很优雅,因为如果我重新订购文件夹或添加新文件夹,我需要更新nth-child(11)
。在定义它时隐藏所有表格,除了内部div之前的表格更可靠......
有人可以就此提出建议吗?我正在使用jquery 1.10.2
答案 0 :(得分:1)
var wrapper = $('#ctl00_PlaceHolderLeftNavBar_ctl02_WebTreeView'),
tables = wrapper.children('table');
tables.not(wrapper.children('div').prev()).hide()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="ctl00_PlaceHolderLeftNavBar_ctl02_WebTreeView">
<table><tr><td>hide</td></tr></table>
<table><tr><td>hide</td></tr></table>
<table><tr><td>hide</td></tr></table>
<table><tr><td>hide</td></tr></table>
<table><tr><td>show</td></tr></table>
<div id="tl00_PlaceHolderLeftNavBar_ctl02_WebTreeViewn10Nodes"></div>
<table><tr><td>hide</td></tr></table>
<table><tr><td>hide</td></tr></table>
</div>
试试这个:
答案 1 :(得分:0)
使用此东西。
$("#ctl00_PlaceHolderLeftNavBar_ctl02_WebTreeView").nextAll('table').css('display','none');
$("#tl00_PlaceHolderLeftNavBar_ctl02_WebTreeViewn10Nodes").prev('table').css('display','block');
答案 2 :(得分:0)
以下代码适合您