jQuery发现下一个表行不起作用

时间:2014-02-14 12:45:30

标签: javascript jquery

您创建了一个表格,允许用户插入多个与每个相关的办公室号码和地址。即Office One,Office Two等。

我在这些部分之间进行了滑动。我有8个电话号码,我使用jQuery隐藏未勾选的电话号码,单击“添加新号码”,它将显示列表中的下一个号码。

然而,因为这仅适用于名为office one的部分而非office 2部分。如果您能够点击添加新号码并在办公室1和办公室2上进行测试,您将看到差异。

我使用的jQuery如下或查看我的jsFiddle

    $(".add").click(function () {
        $(".contact_numbers:hidden:first").fadeIn("slow", function () {
            $(this).closest('.contact_numbers').find('.remove').remove();
            $(this).closest('.contact_numbers').find('.clearnumber').remove();
            $(this).closest('.contact_numbers').find('td:last').append("<a href='#' class='remove'>Hide</a><a href='#' class='clearnumber'> Clear #</a>")
        });
    });

任何人都知道如何在下一张桌子上使用这种通用名单吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

单击“添加”时,您将从root查询“.contact_numbers:hidden:first”。 因此,查询的结果是来自第一个办公室的第一个contact_number,因为办公室一个是隐藏的。

在查询.contact_numbers之前,在office 2中查询.contact_numbers的父元素。 而且我认为您不需要在显示的元素上使用最接近的。

$(".add").click(function () {
    $(this).closest('.togglesettings').find(".contact_numbers:hidden:first").fadeIn("slow", function () {
         $(this).find('.remove').remove();
         $(this).find('.clearnumber').remove();
         $(this).find('td:last').append("<a href='#' class='remove'>Hide</a><a href='#' class='clearnumber'> Clear #</a>")
    });
});