当我取消隐藏时,jQuery附加到最接近的元素

时间:2013-10-21 15:09:12

标签: jquery string append

您好我有jQuery函数,它显示已经勾选的前三个元素并隐藏其余元素。我有一个功能,通过单击添加按钮,可以一次隐藏一个复选框。

我想更进一步,原来我有一个静态删除按钮但是现在我想让这个“删除按钮”附加jQuery,因为我只想让这个按钮在用户点击添加时可见删除相应的tr。

我有代码删除只是不添加它似乎将它添加到所有行,这是显而易见的,因为我已经提到了一个类。而不是特定的地方,但我不确定我应该如何实现这一点。

欢迎任何帮助!

我的代码位于下方或查看jsfiddle

  $("#add").click(function () {
        $(".contact_numbers:hidden:first").fadeIn("slow");
        $( ".contact_numbers" ).append( "<a href='#' class='remove'>Remove</a>");
    });

1 个答案:

答案 0 :(得分:1)

DEMO

使用fadeIn duration complete回调函数

  

动画完成后调用的函数

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

参考

.closest()

更好的代码

DEMO

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

在Op的评论后更新

DEMO

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