Jquery在表之后切换的次数过多

Jquery在表之后切换的次数过多,jquery,css,Jquery,Css,嗨,我不是最好的Jquery玩伴,今天我想做一个简单的切换练习。要使用范围中的触发器切换表的某个部分 我有一个表,我想在“td”中使用一个span来触发切换。我希望jquery切换当前行下的所有行,直到找到另一个具有类标题的行 Jquery代码: $('.meer').click(function(){ $(this).parent().find('span.meer').text(function(_, value){return value=='-'?'+':'-'}); $

嗨,我不是最好的Jquery玩伴,今天我想做一个简单的切换练习。要使用范围中的触发器切换表的某个部分

我有一个表,我想在“td”中使用一个span来触发切换。我希望jquery切换当前行下的所有行,直到找到另一个具有类标题的行

Jquery代码:

$('.meer').click(function(){ $(this).parent().find('span.meer').text(function(_, value){return value=='-'?'+':'-'}); $(this).parents().nextUntil('tr.header').toggle(100, function(){ }); }); 问题是,在切换后,表中的所有内容都显示为无。。。 请检查一下小提琴


有人能帮我吗?

问题是
。在离开table元素后,nextUntil
继续运行。解决方案正在更改
$(this).parents().nextUntil('tr.header').slideToggle(100,函数(){})
$(this).parents().nextUntil('tr.header,div').slideToggle(100,function(){})

编辑:链接错误

您正在调用的
$(this).parents()
,没有参数。
.parents()
函数用于接收选择器作为参数。

您要做的是找到span的直接
tr
祖先。有
.closest()
用于此。

因此,您必须替换此:

$(this).parents().nextUntil('tr.header').toggle(100, function(){
 });
为此:

$(this).closest("tr").nextUntil('tr.header').slideToggle(100, function(){
 });
小提琴:

$(this).closest("tr").nextUntil('tr.header').slideToggle(100, function(){
 });