求教:当div子元素高度>69px时添加CSS类的代码问题
问题分析与解决方案
先梳理你代码里的几个核心问题,帮你快速解决这个需求:
- jQuery方法调用错误:你直接写了
.height,这是引用了函数本身而非获取元素的高度数值,必须加上括号调用方法:height() - 选择器语法错误:第二段代码里的
children(a),这里的a没有加引号,会被JS当成变量而非CSS选择器,正确写法是children('a') - 批量元素处理遗漏:如果页面中有多个
.optionBox,你的代码只会判断第一个元素的高度,建议用.each()遍历每个元素做针对性处理
修正后的代码示例
// 遍历每个.optionBox元素,逐个判断处理 $('.optionBox').each(function() { // 获取当前.optionBox下的a子元素的高度 const linkHeight = $(this).children('a').height(); if (linkHeight > 69) { // 注意:如果.opt是当前.optionBox的子元素,用find来精准匹配 $(this).find('.opt').addClass('optionBoxmultiline'); } else { console.log(`当前元素高度为${linkHeight}px,未超过69px`); } });
额外注意事项
- 如果
.opt是.optionBox的同级元素,需要调整选择器,比如$(this).siblings('.opt'),根据实际DOM结构匹配 - 若需要包含内边距(padding)的高度,可以用
outerHeight()代替height(),按需选择即可
内容的提问来源于stack exchange,提问作者Reis
相关产品推荐
相关产品推荐

