Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery隐藏表中具有特定类的最后一个表行_Javascript_Jquery_Jquery Selectors_Hide - Fatal编程技术网

Javascript 如何使用jQuery隐藏表中具有特定类的最后一个表行

Javascript 如何使用jQuery隐藏表中具有特定类的最后一个表行,javascript,jquery,jquery-selectors,hide,Javascript,Jquery,Jquery Selectors,Hide,我有一个页面,其中包含一系列具有以下结构的表 <table> <thead> <tr> <th>2</th> <th>Position</th> <th>Names</th> </tr> </thead> <tbody> <tr class="station-12 odd"><td>1

我有一个页面,其中包含一系列具有以下结构的表

<table>
 <thead>
   <tr>
     <th>2</th>
     <th>Position</th>
     <th>Names</th>
   </tr>
</thead>
<tbody>
 <tr class="station-12 odd"><td>12</td><td>AO</td><td id="2-1-12-am">Name goes here</td> </tr>
 <tr class="station-12 even"><td></td><td>FF</td><td id="2-2-12-am">Name goes here</td> </tr>
 <tr class="station-12 odd"><td></td><td>PFF</td><td id="2-3-12-am">Name goes here</td> </tr>
 <tr class="separator even"><td colspan="3"></td> </tr>
 <tr class="station-13 odd"><td>13</td><td>AO</td><td id="2-1-13-am">Name goes here</td> </tr>
 <tr class="station-13 even"><td></td><td>FF</td><td id="2-2-13-am">Name goes here</td> </tr>
 <tr class="station-13 odd"><td></td><td>PFF</td><td id="2-3-13-am">Name goes here</td> </tr>
 <tr class="separator even"><td colspan="3"></td> </tr>
 <tr class="station-18 odd"><td>18</td><td>AO</td><td id="2-1-18-am">Name goes here</td> </tr>
 <tr class="station-18 even"><td></td><td>FF</td><td id="2-2-18-am">Name goes here</td> </tr>
 <tr class="station-18 odd"><td></td><td>PFF</td><td id="2-3-18-am">Name goes here</td> </tr>
 <tr class="separator even"><td colspan="3"></td> </tr>
 <tr class="station-19 odd"><td>19</td><td>AO</td><td id="2-1-19-am">Name goes here</td> </tr>
 <tr class="station-19 even"><td></td><td>FF</td><td id="2-2-19-am">Name goes here</td> </tr>
 <tr class="station-19 odd"><td></td><td>PFF</td><td id="2-3-19-am">Name goes here</td> </tr>
</tbody>
</table>
隐藏的部分就像一个符咒。我遇到的问题是试图同时隐藏最后一个station-x行后面的最后一个分隔行。例如,如果我隐藏所有
station-18
station-19
行,我还想隐藏紧跟
station-13
行之后的.separator行。正如您在我的代码中所看到的,我的想法是遍历父元素(在本例中为
),找到所有
元素并隐藏它们,但它不起作用。如果我在该行放置断点并在控制台中输入
$(station\u class).hide().parent()
,我只会得到一个空数组,因此显然我没有错误地使用.parent()。我也尝试过
.nexist()
,但运气不好

我是接近了,还是有更好/更容易的方法来做我想做的事情


谢谢。

重新检查代码后,我注意到您的语法有问题。具体来说,这条线

$(station_class).hide().parent().find('.separator').last().hide();
应改为

$(station_class).parent().find('.separator').last().hide();

您调用了两次
hide()
方法。

重新检查代码后,我注意到您的语法有问题。具体来说,这条线

$(station_class).hide().parent().find('.separator').last().hide();
应改为

$(station_class).parent().find('.separator').last().hide();
您调用了两次
hide()
方法。

尝试使用
兄弟姐妹()

更新:

您也可以尝试使用单独的行代码

var sep = $(station_class).hide();
sep.siblings('.separator').last().hide();
尝试使用
兄弟姐妹()

更新:

您也可以尝试使用单独的行代码

var sep = $(station_class).hide();
sep.siblings('.separator').last().hide();
我会这样做:

在每个站点(第一个站点除外)生成

<tr class="separator station-nn"><td colspan="3"></td> </tr>

式中,nn=下一站的站#

然后,您只需在关闭工作站时关闭分隔行

换言之,每个站点前面都有一个与该站点关联的分隔符。当然除了第一站

我会这样做:

在每个站点(第一个站点除外)生成

<tr class="separator station-nn"><td colspan="3"></td> </tr>

式中,nn=下一站的站#

然后,您只需在关闭工作站时关闭分隔行

换言之,每个站点前面都有一个与该站点关联的分隔符。当然除了第一站

尝试使用next()它可能看起来非常简单和动态

$('.station-18').hide().next('.separator').hide()

试试下面的演示

$(文档).ready(函数(){
setTimeout(函数(){
$('.station-12').hide().next('.separator').hide();
}, 1000);
setTimeout(函数(){
$('.station-13').hide().next('.separator').hide();
}, 2000);
setTimeout(函数(){
$('.station-18').hide().next('.separator').hide();
}, 3000);
});

2.
位置
名字
12
敖
名字就在这里
FF
名字就在这里
PFF
名字就在这里
13
敖
名字就在这里
FF
名字就在这里
PFF
名字就在这里
18
敖
名字就在这里
FF
名字就在这里
PFF
名字就在这里
19
敖
名字就在这里
FF
名字就在这里
PFF
名字就在这里
尝试使用next()它可能看起来非常简单和动态

$('.station-18').hide().next('.separator').hide()

试试下面的演示

$(文档).ready(函数(){
setTimeout(函数(){
$('.station-12').hide().next('.separator').hide();
}, 1000);
setTimeout(函数(){
$('.station-13').hide().next('.separator').hide();
}, 2000);
setTimeout(函数(){
$('.station-18').hide().next('.separator').hide();
}, 3000);
});

2.
位置
名字
12
敖
名字就在这里
FF
名字就在这里
PFF
名字就在这里
13
敖
名字就在这里
FF
名字就在这里
PFF
名字就在这里
18
敖
名字就在这里
FF
名字就在这里
PFF
名字就在这里
19
敖
名字就在这里
FF
名字就在这里
PFF
名字就在这里

这是链接的错误使用。您正在调用
hide()
两次。我的答案是关于这一点的,这是有道理的,因为hide()不是选择器(正如您在上面指出的)。看起来我需要两条分开的链条;一个用来隐藏行,另一个用来隐藏最后一个.separator行。@RichardHamilton我真的不知道,在什么方面它是不正确的链。你能给我解释一下这个场景吗?因此,我可以更新我的答案。
同级
是一种遍历方法,可在选择器上调用<代码>$(选择器).hide()
不是选择器。只需删除第一个
隐藏
,您的代码就可以工作了。我刚刚从W3S中找到了文档。这是报价单<代码>jQuery遍历,意思是“移动”,用于根据HTML元素与其他元素的关系“查找”(或选择)HTML元素。从一个选择开始,然后在该选择中移动,直到到达所需的元素。
这是链接的错误用法。您正在调用
hide()
两次。我的答案是关于这一点的,这是有道理的,因为hide()不是选择器(正如您在上面指出的)。看起来我需要两个分开的cha