Jquery在桌子后切换太多了

时间:2014-02-08 01:25:08

标签: jquery css

嗨,我不是最好的Jquery伙伴,今天我正在尝试轻松切换练习。使用span ...中的触发器切换表格的一部分

我有一张桌子,我想在'td'内使用一个跨度来触发切换。我希望jquery切换当前行下的所有行,直到找到具有类标题的另一行...

Jquery代码:

$('.meer').click(function(){
   $(this).parent().find('span.meer').text(function(_, value){return value=='-'?'+':'-'});
    $(this).parents().nextUntil('tr.header').toggle(100, function(){
    });
});

第三行的代码对我来说是破解者。 +我不确定第一个选择器('.meer')|| ('span .meer')..

Fiddle: http://jsfiddle.net/95nWh/

问题是切换后表后的所有内容都没有显示... 请查看小提琴

有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

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

http://jsfiddle.net/jg7UG/1/

编辑:链接错误

答案 1 :(得分:1)

您正在调用$(this).parents(),没有参数。 .parents()函数旨在接收选择器作为参数。 https://api.jquery.com/parents/

您要做的是找到跨度的直接tr祖先。这有.closest()http://api.jquery.com/closest/

所以你必须替换它:

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

有了这个:

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

小提琴:http://jsfiddle.net/_abl/YgKcN/