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

如何判断指定input是否存在带surface-modal类的div祖先元素

判断元素是否存在指定类名的div祖先元素

要确认指定元素是否存在带有特定类名的div祖先,不管中间隔多少层DOM节点,有两种简洁高效的实现方式:

原生JavaScript实现

利用DOM元素的closest()方法,它会从当前元素开始向上遍历DOM树,找到第一个匹配指定选择器的祖先元素(包括自身),找不到则返回null。

针对你的需求(检查最后一个input是否有class为surface-modal的div祖先),代码示例:

// 获取页面最后一个input元素
const targetInput = document.querySelector('input:last-of-type');
// 查找是否存在class为surface-modal的div祖先
const hasTargetAncestor = targetInput.closest('div.surface-modal') !== null;
console.log(hasTargetAncestor); // 你的示例中会输出true

说明:closest('div.surface-modal')确保只匹配div类型且包含surface-modal类的元素,避免误匹配其他标签类型的同名类元素。

jQuery实现

如果项目中使用jQuery,同样可以用closest()方法,逻辑和原生一致:

// 获取最后一个input元素
const $targetInput = $('input:last-of-type');
// 判断是否存在目标祖先
const hasTargetAncestor = $targetInput.closest('div.surface-modal').length > 0;
console.log(hasTargetAncestor); // 你的示例中会输出true

如果需要匹配所有符合条件的祖先(而非第一个),可以用parents('div.surface-modal'),但closest()性能更优,因为找到第一个匹配项就会停止遍历。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:11:17