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

关于选择器和remove方法的问题

        $("p").remove(".test2>p:nth-child(1)")


 我通过这个选择器选择 test2下的第一个p,怎么两个都被删了呢?我试了一下把1改成2,就能精确删除第二个子节点?

正在回答

5 回答

我猜是这样的

$("p").remove(".test2>p:nth-child(1)")

因为选择器在remove()的括号里面,所以,你的写法是没问题的,只是当nth-child(1)时,选到了第一个p,然后remove把它删除了,然后因为有两个p元素,原来的第二个p元素变成了第一个p元素,然后remove又把原来的第二个p,现在的第一个p也删除了……

我试了下发现当nth-child(1)时,再多p元素也会删光光

而当写为$('.test>p:nth-child(1)').remove()时,就能只删除一个;

可能牵扯到remove()的实现方式,具体什么原理我还没学习到那一步.

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

金刚无敌葫芦娃

$('.test2>p:nth-child(1)').remove() 少写了个2
2020-03-28 回复 有任何疑惑可以回复我~

:nth-child(index)  中的索引index 是从1开始计数的, 与eq(index) 要区分开

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

remove的参数不是放在自己的小括号里的,放在$('')这个里面,选择到指定元素,进行移除销毁

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

选择p1

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

直接在第一个选择器里进行选择吧,例如 $('.test2 p:nth-child(1)').remove();

remove中的选择器有点迷,等高手分析愿意

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

举报

0/150
提交
取消

关于选择器和remove方法的问题

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