首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表行隐藏/折叠

问表行隐藏/折叠
EN

Stack Overflow用户
提问于 2016-05-09 11:32:18
回答 2查看 1K关注 0票数 0

在给定的示例中,隐藏/折叠发挥良好,但是当我单击"This is parent 1“的”L“链接(bg-黄色)时,它只显示一个隐藏的tr,即”这是第一个孩子“,当有两个隐藏层时,”这是父层“,当我一次单击”L“两个隐藏层时,检查从CSS中删除".hidden”类的HTML结构。

HTML :

代码语言:javascript
复制
<table>
    <tr>
        <td class="details-control"><a>L-O</a></td>
        <td>This is parent 1</td>
    </tr>
    <tr class = "hidden">
        <td></td>
        <td>This is 1st Child</td>
    </tr>
    <tr class = "hidden">
        <td></td>
        <td>This is 2nd Child</td>
    </tr>
    <tr>
        <td class="details-control"><a>L-O</a></td>
        <td>This is parent 2</td>
    </tr>
    <tr class = "hidden">
        <td></td>
        <td>This is 1st Child</td>
    </tr>
</table>

CSS :

代码语言:javascript
复制
a {width:50px; display: block; background: yellow}

.hidden {
    display: none;
}

.details-control {
    cursor:pointer;
}

jQuery :

代码语言:javascript
复制
$('.details-control').click(function() {
    var $td = $(this);

    if ($td.html() == '<a>L-O</a>') {
        $td.html('<a>L-C</a>');
        $td.parent().next(".hidden").show();
    } else {
        $td.html('<a>L-O</a>');
        $td.parent().next(".hidden").hide();
    }  
})

JSFiddle在这里

EN

回答 2

Stack Overflow用户

发布于 2016-05-09 11:36:46

使用nextUntil()和:not()伪选择器。

代码语言:javascript
复制
$td.parent().nextUntil(":not('.hidden')").show();

演示

票数 1
EN

Stack Overflow用户

发布于 2016-05-09 11:39:09

您可以使用nextUntil()和toggleClass()方法。此外,您还可以缩短您的js如下所示。

代码语言:javascript
复制
$('.details-control').click(function () {
    var $td = $(this);
    var text = $td.html() == '<a>L-O</a>' ? '<a>L-C</a>' : '<a>L-O</a>';
    $td.html(text);
    $td.parent().nextUntil('tr:has(.details-control)').toggleClass('hidden');
})

更新小提琴

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37114715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档