jquery nearest()选择

时间:2009-08-20 15:13:24

标签: jquery xhtml closest

我在删除元素功能时遇到问题。

我有这个功能:

//Remove an Item From Any Group
function deleteItem (selector) {
  $(selector).closest("li").fadeOut(500, function() { 
    $(selector).closest("li").remove();
  });
}

然后这个叫它,

$("a.delete").live('click', function() {
  deleteItem("li span.delete a.delete");
});

使用此HTML:

<ul>
  <li><img src="" width="40" height="40" class="image"/><span><a href="#">Drinkers Pub</a></span><span class="delete"><a href="javascript:;" class="delete">delete</a></span></li>
  <li><img src="" width="40" height="40" class="image"/><span><a href="#">Drinkers Pub</a></span><span class="delete"><a href="javascript:;" class="delete">delete</a></span></li>
  <li><img src="" width="40" height="40" class="image"/><span><a href="#">Drinkers Pub</a></span><span class="delete"><a href="javascript:;" class="delete">delete</a></span></li>
</ul> 

问题是它只删除列表中的第一个LI,无论哪个链接。 我认为最接近的事件是最接近事件的元素。在这种情况下,单击删除按钮。

我错过了什么?

1 个答案:

答案 0 :(得分:4)

您正在传递deleteItem函数一个选择器,它可以获取所有删除链接。 你会想要更像这样的东西。

function deleteItem (link) {
  link.closest("li").fadeOut(500, function() { 
    link.closest("li").remove();
  });
}

$("a.delete").live('click', function() {
  deleteItem($(this));
});