remove()为什么不能删除第一个子元素?

来源:4-2 DOM节点删除之remove()的有参用法和无参用法

WE2008311

2016-08-14 11:56

代码如下,我把原代码的“:contains('3')”换成了$(".test2")remove(“:first-child”)就无法实现了,类似的还有几个选择器,用了也无法实现


<script type="text/javascript">

    $("button:first").on('click', function() {

        //删除整个 class=test1的div节点

        $(".test1").remove()

    })


    $("button:last").on('click', function() {

        //找到所有p元素中,包含了3的元素

        //这个也是一个过滤器的处理

        $(".test2").remove(":first-child")

    })

    </script>

写回答 关注

3回答

  • koromon
    2016-08-14 14:46:55
    已采纳

    因为 remove() 是会移除自身的,你使用 :first-child 这个过滤器没有意义,所以估计没有这种语法吧。

    你可以使用 :first 这个过滤器试下,意味着移除 $(".test2") 中的第一个,这个可以通过测试。


    WE2008... 回复koromo...

    是啊,确实就是整个都移除了...

    2016-08-16 08:10:23

    共 4 条回复 >

  • Yinsion_Nie
    2016-10-20 14:56:23

    $(".test2 p")remove(“:first-child”)这样写,倒是可以删除掉class="test2"下面的第一个p元素。

    市民高女士的...

    我特别纳闷 $("button:last").on('click', function() { $("p").remove(":eq(0)") }) 这么写为什么不行呢,就把所有的p都删掉了,逻辑上看起来都是先选了p然后对p集合再进行筛选。和:contains("3"),都是筛选器罢了啊。 但是我写eq(1)的时候就什么都删不掉。

    2017-10-24 11:01:25

    共 3 条回复 >

  • 慕粉18408282381
    2016-08-14 14:31:32

    不知道为什么,但是试试是要是限定条件在前面的话就没有问题,比如$(".test2 p:first-child").remove( )

    WE2008...

    谢谢你的热心回答

    2016-08-15 09:24:47

    共 1 条回复 >

jQuery基础(二)—DOM篇

jQuery第二阶段开启DOM修炼,了解创建、插入、删除与替换

114008 学习 · 590 问题

查看课程

相似问题