首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jQuery显示最接近选定的隐藏行()

使用jQuery显示最接近选定的隐藏行()
EN

Stack Overflow用户
提问于 2015-06-10 16:23:07
回答 2查看 655关注 0票数 0

我对jQuery非常陌生,但是当用户选择(可访问的)一个表行时,我试图显示最近的隐藏表行。

HTML

代码语言:javascript
复制
 Click on a row for more info:
<table>
    <tr><td><p>Name</p></td><td><p>Age</p></td><td><p>Info</p></td></tr>
    <tr class="child"><td><p>Blah blah blah.</p>
    </td></tr>

    <tr><td><p>Name</p></td><td><p>Age</p></td><td><p>Info</p></td></tr>
    <tr class="child"><td><p>Blah blah blah.</p>
    </td></tr>

    <tr><td><p>Name</p></td><td><p>Age</p></td><td><p>Info</p></td></tr>
    <tr class="child"><td><p>Blah blah blah.</p>
    </td></tr>    
</table>

jQuery

代码语言:javascript
复制
$(function() {
    $("tr.child").hide();

    $("table").click(function(event) {
        event.stopPropagation();

        var $target = $(event.target);
        $target.closest("tr.child").toggle();
    });
});

这是一个小提琴。任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-10 16:28:58

.closest()遍历祖先的DOM结构。

对于给定的表结构,应该使用.next()切换下一个tr。

你可以做这样的事

代码语言:javascript
复制
$("table tr").click(function(event) {
    $(this).next(".child").toggle();
});

下面是一个演示https://jsfiddle.net/dhirajbodicherla/mfwYS/1166/

票数 1
EN

Stack Overflow用户

发布于 2015-06-10 16:30:18

你所拥有的是好的。首先需要使用<tr>函数找到最接近的closest()元素。

然后使用nextAll()函数查找该元素之后的所有.child类,但只选择第一个返回的

代码语言:javascript
复制
$("table").click(function(event) {
    event.stopPropagation();

    var $target = $(event.target);
    $target.closest("tr").nextAll('.child').first().toggle();
});

看这把小提琴

https://jsfiddle.net/mfwYS/1165/

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

https://stackoverflow.com/questions/30762024

复制
相关文章

相似问题

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