Jquery 单击动态表的标题,以淡出内容行

Jquery 单击动态表的标题,以淡出内容行,jquery,dynamic,Jquery,Dynamic,我对jquery和动态表有问题。我希望单击表格标题以使所有行(而不是标题)淡出。不幸的是,我不知道如何选择行。到目前为止,我只找到了一些示例,它们有固定数量的行,因此有固定的ID或类。但正如我所说,在我的例子中,可以有任意数量的行 我想我需要像$(this).tr.effect(…)这样的东西。 我知道我可以尝试用Javascript找出所有行的ID,然后淡出它们。但这似乎是解决这个问题的一种过于复杂的方法。有人知道一种淡出行的简单方法吗 编辑: 对不起,我想我说得不够清楚(我再试一次:)。我说

我对jquery和动态表有问题。我希望单击表格标题以使所有行(而不是标题)淡出。不幸的是,我不知道如何选择行。到目前为止,我只找到了一些示例,它们有固定数量的行,因此有固定的ID或类。但正如我所说,在我的例子中,可以有任意数量的行

我想我需要像$(this).tr.effect(…)这样的东西。 我知道我可以尝试用Javascript找出所有行的ID,然后淡出它们。但这似乎是解决这个问题的一种过于复杂的方法。有人知道一种淡出行的简单方法吗

编辑: 对不起,我想我说得不够清楚(我再试一次:)。我说:“我有一个动态表。”但我的意思是:我在一个页面上有动态表,因此不止一个标题。类似这样的代码(伪代码):


如果我误解了,请原谅,你就不能这样做吗

$("#table tr").hide();

如果我误解了,请原谅,你就不能这样做吗

$("#table tr").hide();

可以扭曲桌子主体。(包装要隐藏的内容。)



然后用jquery选择#表体。

您可以扭曲表体。(包装要隐藏的内容。)



然后用jquery选择#表体。

如果将标题行放在
元素中,并且将表体放在
元素中,则可以使用以下jquery实现预期效果

$('tbody > tr').fadeOut('slow');

如果将标题行放在
元素中,将表体放在
元素中,则可以使用以下jQuery实现预期效果

$('tbody > tr').fadeOut('slow');

最好的方法是将标题包装在
中,将行包装在
中,然后可以使用以下代码:

$myTable = $("#myTable");

$("thead > tr", $myTable).click(function() {
    $("tbody > tr", $myTable).fadeOut();
});
但是,如果您不想使用它们,此代码将起作用(假设只有第一行是标题行):

示例:

编辑: 更新的问题的更新答案

Html:

<table class="MyTable">
    <thead>
        <tr><th>Header 1</th><th>Header 2</th><th>Header 3</th></tr>
    </thead>
    <tbody>
        <tr><td>Data</td><td>Data</td><td>Data</td></tr>
        <tr><td>Data</td><td>Data</td><td>Data</td></tr>
    </tbody>
</table>
$(function() {    
    $(".MyTable > thead > tr").click(function() {
        $(this).closest(".MyTable").find("tbody > tr").fadeOut();
    });
});
<table class="myTable">
    <tr class="myHeader"><th>Header 1</th><th>Header 2</th><th>Header 3</th></tr>
    <tr><td>Data</td><td>Data</td><td>Data</td></tr>
    <tr><td>Data</td><td>Data</td><td>Data</td></tr>
</table>
$(function() {    
    $(".myTable .myHeader").click(function() {
        $(this).closest(".myTable").find("tr:not(.myHeader)").fadeOut();
    });
});
如果你不想要这个ad/tbody:

Html:

<table class="MyTable">
    <thead>
        <tr><th>Header 1</th><th>Header 2</th><th>Header 3</th></tr>
    </thead>
    <tbody>
        <tr><td>Data</td><td>Data</td><td>Data</td></tr>
        <tr><td>Data</td><td>Data</td><td>Data</td></tr>
    </tbody>
</table>
$(function() {    
    $(".MyTable > thead > tr").click(function() {
        $(this).closest(".MyTable").find("tbody > tr").fadeOut();
    });
});
<table class="myTable">
    <tr class="myHeader"><th>Header 1</th><th>Header 2</th><th>Header 3</th></tr>
    <tr><td>Data</td><td>Data</td><td>Data</td></tr>
    <tr><td>Data</td><td>Data</td><td>Data</td></tr>
</table>
$(function() {    
    $(".myTable .myHeader").click(function() {
        $(this).closest(".myTable").find("tr:not(.myHeader)").fadeOut();
    });
});

示例:

最好的方法是将标题包装在
中,将行包装在
中,然后可以使用以下代码:

$myTable = $("#myTable");

$("thead > tr", $myTable).click(function() {
    $("tbody > tr", $myTable).fadeOut();
});
但是,如果您不想使用它们,此代码将起作用(假设只有第一行是标题行):

示例:

编辑: 更新的问题的更新答案

Html:

<table class="MyTable">
    <thead>
        <tr><th>Header 1</th><th>Header 2</th><th>Header 3</th></tr>
    </thead>
    <tbody>
        <tr><td>Data</td><td>Data</td><td>Data</td></tr>
        <tr><td>Data</td><td>Data</td><td>Data</td></tr>
    </tbody>
</table>
$(function() {    
    $(".MyTable > thead > tr").click(function() {
        $(this).closest(".MyTable").find("tbody > tr").fadeOut();
    });
});
<table class="myTable">
    <tr class="myHeader"><th>Header 1</th><th>Header 2</th><th>Header 3</th></tr>
    <tr><td>Data</td><td>Data</td><td>Data</td></tr>
    <tr><td>Data</td><td>Data</td><td>Data</td></tr>
</table>
$(function() {    
    $(".myTable .myHeader").click(function() {
        $(this).closest(".myTable").find("tr:not(.myHeader)").fadeOut();
    });
});
如果你不想要这个ad/tbody:

Html:

<table class="MyTable">
    <thead>
        <tr><th>Header 1</th><th>Header 2</th><th>Header 3</th></tr>
    </thead>
    <tbody>
        <tr><td>Data</td><td>Data</td><td>Data</td></tr>
        <tr><td>Data</td><td>Data</td><td>Data</td></tr>
    </tbody>
</table>
$(function() {    
    $(".MyTable > thead > tr").click(function() {
        $(this).closest(".MyTable").find("tbody > tr").fadeOut();
    });
});
<table class="myTable">
    <tr class="myHeader"><th>Header 1</th><th>Header 2</th><th>Header 3</th></tr>
    <tr><td>Data</td><td>Data</td><td>Data</td></tr>
    <tr><td>Data</td><td>Data</td><td>Data</td></tr>
</table>
$(function() {    
    $(".myTable .myHeader").click(function() {
        $(this).closest(".myTable").find("tr:not(.myHeader)").fadeOut();
    });
});

示例:

你能发布一些代码吗?你能发布一些代码吗?啊,是的,我有点太快了=)啊,是的,我有点太快了=)嘿,谢谢。这正是我想要的。很好,谢谢。这正是我想要的。工作完美。