课程
/前端开发
/jQuery
/jQuery基础(二)—DOM篇
$("p").remove(".test2>p:nth-child(1)")
我通过这个选择器选择 test2下的第一个p,怎么两个都被删了呢?我试了一下把1改成2,就能精确删除第二个子节点?
2019-04-24
源自:jQuery基础(二)—DOM篇 4-2
正在回答
我猜是这样的
因为选择器在remove()的括号里面,所以,你的写法是没问题的,只是当nth-child(1)时,选到了第一个p,然后remove把它删除了,然后因为有两个p元素,原来的第二个p元素变成了第一个p元素,然后remove又把原来的第二个p,现在的第一个p也删除了……
我试了下发现当nth-child(1)时,再多p元素也会删光光
而当写为$('.test>p:nth-child(1)').remove()时,就能只删除一个;
可能牵扯到remove()的实现方式,具体什么原理我还没学习到那一步.
金刚无敌葫芦娃
:nth-child(index) 中的索引index 是从1开始计数的, 与eq(index) 要区分开
remove的参数不是放在自己的小括号里的,放在$('')这个里面,选择到指定元素,进行移除销毁
选择p1
直接在第一个选择器里进行选择吧,例如 $('.test2 p:nth-child(1)').remove();
remove中的选择器有点迷,等高手分析愿意
举报
jQuery第二阶段开启DOM修炼,了解创建、插入、删除与替换
4 回答提问关于CSS选择器之组合选择器的问题?
3 回答关于remove的移除问题
3 回答remove()方法
1 回答选择器顺序问题
2 回答.children()方法选择性的接受同一类型选择器表达式,什么叫同一类型选择器表达式?