首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除jQuery parent.parent

删除jQuery parent.parent
EN

Stack Overflow用户
提问于 2009-11-12 05:23:14
回答 3查看 9.9K关注 0票数 0

我正在用一个javascript函数处理一个超链接的点击事件。我正在使用jQuery的ajax方法删除一条记录。然后,我想删除我刚刚从页面中删除的元素。页面结构如下所示:

代码语言:javascript
复制
<ul>
  <li>
    <div id="div1"></div>
    <div id="div2">
      <a id="DeleteItem">This is the hyperlink in question</a>
    </div>
  </li>
</ul>

我要删除的是li元素。我的假设是,我将使用以下内容来删除它:

代码语言:javascript
复制
$("a#DeleteItem").parent.parent.remove();

但是,这会抛出一个异常,声明parent.parent为空或不是对象。我也尝试了上一级的($"a#DeleteItem").parent.remove();),但是之后我得到了一个异常,声明object不支持这个属性或方法。

我做错了什么?

EN

回答 3

Stack Overflow用户

发布于 2009-11-12 05:24:29

它不工作是因为parent是一个函数:

代码语言:javascript
复制
$("a#DeleteItem").parent().parent().remove();

您还可以使用closest函数:

代码语言:javascript
复制
$("a#DeleteItem").closest('li').remove();
票数 11
EN

Stack Overflow用户

发布于 2009-11-12 05:24:40

试试这个:

代码语言:javascript
复制
$("#DeleteItem").parents("li:first").remove();

您的主要问题是parent调用是一个方法调用,不能像访问字段一样进行访问。但是为了避免双重调用,你可以像上面描述的那样做。

票数 3
EN

Stack Overflow用户

发布于 2009-11-12 05:31:27

首先,你有一些基本的语法错误:使用'parent()‘代替'parent’

您是要删除“li”及其所有子项(包括单击的项),还是只想删除周围的“li”标记?

如果是第一种情况,则需要执行以下操作:

代码语言:javascript
复制
<a id="DeleteItem" onclick="$(this).parent('div').parent('li').remove();">This is the hyperlink in question</a>

Greg,parent()...由于jQuery的链接性,它将工作得很好。我在不同的项目中使用过很多次。

Quintin,你的方法可能并不是在所有情况下都有效,因为它只针对无序列表中的第一个'li‘标记,那里可能有很多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1718181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档