jQuery删除直接子元素

26

使用jQuery,我如何删除HTML主体中的一个锚标签,该标签还包括一个包装器div,并且此包装器div位于我想要删除的锚标签上方。

就像这样:

<body>
    <div id="wrapper"> 
        <a id="not_me" href="#">hi</a>
    </div> 

    <a id="remove_me" href="#">Remove Me</a>

</body>
如果我使用

$("body").find("a:first-child").remove();

它删除了我的包装

中的第一个锚点标记,即具有"id =“not_me”的标记,而我想要删除的是“remove_me”。

3个回答

51
$("body").children("a:first").remove();
您使用children()(docs),因为您只想选择body的直接子元素。

然后使用"a:first"作为选择器来定位第一个<a>元素。

这是因为使用first-child-selector(docs),您只能获得<a>元素,如果且仅如果它是其父级的第一个子元素(但它不是)。但是使用first-selector(docs),您将获得匹配到的第一个<a>元素。

另一种方法是将所有内容放在一个选择器中:

$('body > a:first').remove();

与上面的示例相同,但使用> 子级选择器(文档)而不是children()(文档)方法。


啊!别再打招呼了,我太喜欢了.. :p) - jAndy
@jAndy:这里还有几个给你。:o) - user113716

10
你希望使用children()方法来仅搜索直接子元素,你可以使用:firsteq(0)来删除第一个元素:
$("body").children("a").eq(0).remove();

8

为什么不尝试:

$("#remove_me").remove()

我不知道是否正确,我还在学习中: P


没错,但我有一种感觉,OP只是为了举例说明哪个<a>被定位了,哪个没有。:o) - user113716
抱歉,但是我忘了提到id(例如“remove_me”)是动态生成的,所以我们不能使用您建议的方法,无论如何感谢您的回复。 - Prashant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接