我正在用一个javascript函数处理一个超链接的点击事件。我正在使用jQuery的ajax方法删除一条记录。然后,我想删除我刚刚从页面中删除的元素。页面结构如下所示:
<ul>
<li>
<div id="div1"></div>
<div id="div2">
<a id="DeleteItem">This is the hyperlink in question</a>
</div>
</li>
</ul>我要删除的是li元素。我的假设是,我将使用以下内容来删除它:
$("a#DeleteItem").parent.parent.remove();但是,这会抛出一个异常,声明parent.parent为空或不是对象。我也尝试了上一级的($"a#DeleteItem").parent.remove();),但是之后我得到了一个异常,声明object不支持这个属性或方法。
我做错了什么?
发布于 2009-11-12 05:24:29
它不工作是因为parent是一个函数:
$("a#DeleteItem").parent().parent().remove();您还可以使用closest函数:
$("a#DeleteItem").closest('li').remove();发布于 2009-11-12 05:24:40
试试这个:
$("#DeleteItem").parents("li:first").remove();您的主要问题是parent调用是一个方法调用,不能像访问字段一样进行访问。但是为了避免双重调用,你可以像上面描述的那样做。
发布于 2009-11-12 05:31:27
首先,你有一些基本的语法错误:使用'parent()‘代替'parent’
您是要删除“li”及其所有子项(包括单击的项),还是只想删除周围的“li”标记?
如果是第一种情况,则需要执行以下操作:
<a id="DeleteItem" onclick="$(this).parent('div').parent('li').remove();">This is the hyperlink in question</a>Greg,parent()...由于jQuery的链接性,它将工作得很好。我在不同的项目中使用过很多次。
Quintin,你的方法可能并不是在所有情况下都有效,因为它只针对无序列表中的第一个'li‘标记,那里可能有很多。
https://stackoverflow.com/questions/1718181
复制相似问题