页面加载时让所有card类div执行slideUp失效,求jQuery解决办法
解决页面加载时.card元素slideUp动画不生效的问题
嘿,你的问题根源很明显——选择器没匹配到目标元素!
看你的HTML结构,.d-flex.flex-wrap是包裹所有card的父容器,而你要动画的是它里面带.card类的子div,但原代码里却用了document.querySelectorAll('.flex-wrap .d-flex'),这选中的是父容器本身,不是里面的card,动画当然不会生效啦。
给你两种修正方案,选顺手的用就行:
方案1:纯jQuery写法(最简洁)
既然已经引入了jQuery,直接用它的选择器语法精准选中所有.card元素就行,没必要绕原生API:
$(document).ready(function () { $('.card').slideUp(500); })
方案2:原生API + jQuery混合写法
如果你想保留原生DOM查询的习惯,只要把选择器改成.card,再转成jQuery对象就ok:
$(document).ready(function () { const cards = document.querySelectorAll('.card'); $(cards).slideUp(500); console.log(cards); // 现在控制台会输出所有选中的card元素了 })
补充一句:slideUp是jQuery专属方法,必须作用在jQuery对象上,你的原代码转对象的步骤是对的,但选的元素错了,换对选择器就没问题啦。
内容的提问来源于stack exchange,提问作者pitten
相关产品推荐
相关产品推荐

