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

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

Owlapollo

2019-04-24 15:00

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


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

写回答 关注

5回答

  • 金刚无敌葫芦娃
    2020-03-28 21:08:57

    我猜是这样的

    $("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()的实现方式,具体什么原理我还没学习到那一步.

    金刚无敌葫芦...

    $('.test2>p:nth-child(1)').remove() 少写了个2

    2020-03-28 21:17:00

    共 1 条回复 >

  • 为了前端
    2020-01-16 16:56:07

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

  • weixin_慕圣5109373
    2019-12-10 14:24:59

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

  • 日幕
    2019-05-05 21:07:21

    选择p1

  • 慕粉3118661
    2019-04-25 15:50:01

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

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

jQuery基础(二)—DOM篇

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

114012 学习 · 590 问题

查看课程

相似问题