You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何jQuery的:first-child选择器未生效?类被添加到父元素而非子元素

问题分析:为何:first-child选择器未按预期选中子元素?

你写的$('#foo:first-child')逻辑是选中id为foo,且本身是其父元素第一个子元素的元素——这和你想选#foo的子元素完全是两回事,所以类才会被加到#foo本身上。

要选中#foo的子元素,需要调整选择器的写法,分两种场景:

  • 若要选中#foo的所有后代里的第一个子元素(包括深层嵌套的元素),给选择器加空格(代表后代选择器):

    $('#foo :first-child').addClass('foobar');
    

    这段代码会同时选中#bar(它是#foo的第一个子元素)和<p>(它是#bar的第一个子元素),两者都会变成粉色。

  • 若只想选中#foo的直接子元素里的第一个,用子元素选择器>:

    $('#foo > :first-child').addClass('foobar');
    

    这段代码只会选中#bar,只有它会变成粉色。

  • 也可以用jQuery的方法链实现,逻辑更直观:

    $('#foo').children().first().addClass('foobar');
    

    效果和子元素选择器的写法一致,只选中#foo的直接第一个子元素。

内容的提问来源于stack exchange,提问作者Alan A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 18:15:01