0

这个问题很可能是重复的(但我找不到),所以如果它是多余的,我深表歉意。我正在尝试使用 JQuery 的 .remove 函数来允许(显然)删除li我的静态 HTML 原型中的元素。与其为每个li我想删除的内容写一个 javascript 块,我想知道是否可以单独使用 JS 创建递增的 ID。(我正在使用与 HAML 和 SASS 一起使用的服务)。这就是我所拥有的。

/view-file.html.haml

%ul
  %li#removeThis1
    %a.remover1{:src => "#"} Remove

/application.js

...
$(".remover1").click(function () {
  $("li#removeThis1").fadeOut( function() { $(this).remove(); });
});

关于如何增加等的任何.remover1想法.remover2li##removeThis1#removeThis2等类似。

我需要所有这些都发生在页面加载时。

4

1 回答 1

2

元素之间有祖先的关系,所以只要利用它对你有利。

  // don't bother numbering the class. Use a common class
$(".remover").click(function () {

       // find the closest ancestor with an ID that start with "removeThis"
    $(this).closest("li[id^=removeThis]")
           .fadeOut( function() { $(this).remove(); });
});

或者,如果您真的不需要祖先的 ID,也可以在那里使用一个类......

  // don't bother numbering the class. Use a common class
$(".remover").click(function () {

       // find the closest ancestor with the class "removeThis"
    $(this).closest(".removeThis")
           .fadeOut( function() { $(this).remove(); });
});

最终,如果您要使用 ID,您需要在服务器端生成它们,然后使用处理程序从元素中提取 ID 的数字部分,并将其连接到祖先的选择器中。

于 2012-04-17T03:34:14.460 回答