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

如何隐藏每个.parent下除首个.push_down外的子元素?现有代码无效求解决

嘿,我来帮你搞定这个问题~你的代码里有几个语法小错误,比如$('.parent').[i]这种写法是不对的,而且反复查询DOM元素也有点浪费性能。下面给你几种简单靠谱的实现方式,选你顺手的用就行:

方法一:用jQuery遍历+切片(最直观)

这种方式逐个处理每个.parent元素,逻辑清晰,适合需要后续扩展其他操作的场景:

$(document).ready(function(){
  // 遍历每一个.parent容器
  $('.parent').each(function(){
    // 找到当前容器下所有.push_down,从第2个开始全部隐藏
    $(this).find('.push_down').slice(1).hide();
  });
});

简单解释:

  • $(this)指代当前正在遍历的那个.parent元素,避免重复查询整个DOM
  • .slice(1)会选中索引从1开始的元素(也就是第二个及以后的所有.push_down)
  • .hide()直接隐藏这些元素

方法二:纯CSS实现(性能最优)

如果页面加载后不会动态新增.push_down元素,直接用CSS就能搞定,不需要写JS,性能更好:

.parent .push_down:not(:first-child) {
  display: none;
}

解释:not(:first-child)会精准选中每个.parent下不是第一个的.push_down元素,直接隐藏。

方法三:jQuery链式调用(一行代码搞定)

如果想用jQuery但不想写循环,直接用选择器选中目标元素就行:

$(document).ready(function(){
  $('.parent .push_down:not(:first-child)').hide();
});

这个思路和CSS一样,直接选中所有需要隐藏的元素,一次性隐藏。

顺便说下你原代码的问题:

  1. 语法错误:$('.parent').[i]这种写法不符合jQuery语法,应该用$('.parent').eq(i)来获取第i个.parent元素
  2. DOM查询重复:反复写$('.parent').[i].$('.push_down')会多次查询DOM,建议先把当前.parent存成变量,再找里面的子元素
  3. 嵌套循环没必要:用jQuery的内置方法可以简化这些循环逻辑,不用自己写两层for循环

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:48:28