为了账号安全,请及时绑定邮箱和手机立即绑定

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

代码如下,我把原代码的“: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 回答

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

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


0 回复 有任何疑惑可以回复我~
#1

WE2008311 提问者

非常感谢!
2016-08-15 回复 有任何疑惑可以回复我~
#2

WE2008311 提问者

:first貌似也没有效果,不知道为什么,还是把分给你吧,谢谢你的热心回答
2016-08-15 回复 有任何疑惑可以回复我~
#3

koromon 回复 WE2008311 提问者

$("button:last").on('click', function() { //找到所有p元素中,包含了3的元素 //这个也是一个过滤器的处理 $(".test2").remove(":first") }) 这个可以啊,整个 .test2 都会移除的
2016-08-15 回复 有任何疑惑可以回复我~
#4

WE2008311 提问者 回复 koromon

是啊,确实就是整个都移除了...
2016-08-16 回复 有任何疑惑可以回复我~
查看1条回复

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

0 回复 有任何疑惑可以回复我~
#1

Yinsion_Nie

$(".test2 p").filter(":first-Child").remove(); 上面的写错了
2016-10-20 回复 有任何疑惑可以回复我~
#2

Yinsion_Nie

$(".test2 p").remove(“:first-child”)会删除掉class="test2"里面的所有p元素,但是本身不删除,有点类似empty().
2016-10-20 回复 有任何疑惑可以回复我~
#3

市民高女士的小女儿

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

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

0 回复 有任何疑惑可以回复我~
#1

WE2008311 提问者

谢谢你的热心回答
2016-08-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信