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

如何使用jQuery获取div父元素下包含深层嵌套的最后一个子元素?

问题原因

你之前的代码不生效是因为 jQuery 的 children() 方法只会匹配当前元素的直接一级子元素,不会递归查找所有嵌套的后代元素,所以多层嵌套的内部元素无法被命中。

解决方案

根据你的实际需求可以选择以下两种实现:

方案1:取所有后代中DOM顺序最靠后的元素

如果只要父元素包裹范围内,文档流里排在最后面的元素,不管它本身是否还有子元素,可以直接用find('*')匹配所有后代后取最后一个:

var els = '#first,#second,#third';

$(els).each(function() {
  $(this).find('*').last().addClass('memo');
});

方案2:取最后一级叶子节点(无任何子元素)

如果要求必须是没有嵌套子元素的最后一级节点,可以加一层过滤逻辑:

var els = '#first,#second,#third';

$(els).each(function() {
  $(this).find('*').filter(function() {
    // 过滤出没有子元素节点的叶子元素
    return $(this).children().length === 0;
  }).last().addClass('memo');
});

效果验证

修改后你提供的示例中,#third 嵌套层级最内部的 <img> 元素会被正确添加memo类,背景变红,符合预期。

内容的提问来源于stack exchange,提问作者Lekker Cain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 14:21:01