6

我有一个多行的表。每行都有一个显示详细信息按钮和一个隐藏详细信息按钮。单击显示详细信息时,我希望隐藏详细信息按钮仅显示特定行。我认为 .closest() 函数可以工作,但还没有。

这是HTML

<table>
    <tr id="1">
      <td><button class='view'>View Details</button><button class='hide' style='display:none;'>Hide Details</button></td>
    </tr>

    <tr id="2">
      <td><button class='view'>View Details</button><button class='hide' style='display:none;'>Hide Details</button></td>
    </tr>
</table>

这是 jQuery

$(".view").click(function() {   
    $("#patient").show("");
    $(this).hide();
    $(this).closest(".hide").show();
});
4

3 回答 3

11

.closest仅查看当前元素及其父元素。你必须这样做:

$(this).parent().find('.hide');

或者

$(this).siblings('.hide');
于 2013-08-02T19:53:01.500 回答
2

尝试下一个()而不是最近的()。

http://api.jquery.com/next/ http://api.jquery.com/siblings/

使用最接近时,您通常会为其提供一些附加信息,例如要查找的类或其他信息。

于 2013-08-02T19:54:08.953 回答
2

dom准备好后你绑定了吗?尝试这个:

$(function(){
    $(".view").click(function() {   
        $("#patient").show("");
        $(this).hide().next().show();
    });
});
于 2013-08-02T19:55:10.043 回答