选择第一个父母

Zal*_*oza 1 jquery

JS

$(".deletable").live('click',function(){
      $(this).parent().effect('explode', 500, function(){
            $(this).parent().remove();
      })
});
Run Code Online (Sandbox Code Playgroud)

HTML

<table>
    <tr>
        <td class='deletable'>hi</td>
    </tr>
</table>

<ul>
    <li>
        <span class=deletable>hi</span>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我想删除tr以防万一td被点击并点击li案例span.

由于某种原因,这不起作用,而是整个ul/ table被删除.

为什么这样 ?

Nop*_*ope 5

由于某种原因,这不起作用,而是删除整个ul /表.

为什么这样 ?

在您当前的代码this中,click事件引用了单击的元素.
然后,您遍历元素的父级以调用effect$(this).parent().effect....

在效果调用this中,现在引用parent(li/tr),但是您调用$(this).parent().remove();遍历父(ul/table)的父级,从而删除整个list/table.

将代码更改为仅$(this).remove();在效果调用中使用,因为它已经引用了所需的父元素(li/tr),如下所示:

$(".deletable").live('click',function(){
      $(this).parent().effect('explode', 500, function(){
            $(this).remove();
      })
});
Run Code Online (Sandbox Code Playgroud)