【问题标题】:add height to a dynamically-created div将高度添加到动态创建的 div
【发布时间】:2025-12-23 02:55:11
【问题描述】:

我没有运气尝试为动态创建的 div 添加一点高度。

此代码获取 .healcode div 的高度,该高度是动态生成的并嵌套在#scheduleArea 中,然后将#scheduleArea 动画化到该高度。我希望能够在为 .healcode 生成的任何高度上添加额外的 40px。

这是无需额外高度即可工作的代码:

function () { 
    $j("#scheduleArea").animate({height: $j('.healcode').css('height')}, {queue:false, duration: 1100, easing: 'easeOutBounce'}) 
        }, 

.css 方法的文档指出“+=40”应该给我我正在寻找的东西,但它会将高度归零。

想法?

【问题讨论】:

  • 哎呀,没有输入我的非工作代码:$j('.healcode').css('height', '+=40')},

标签: jquery css height jquery-animate


【解决方案1】:

我想我理解你的问题。您正在尝试这样做吗?

function () { 
    $j("#scheduleArea").animate({height: $j('.healcode').css('height','+=40')}, {queue:false, duration: 1100, easing: 'easeOutBounce'}) 
}, 

如果是这样,那么问题是$j('.healcode').css('height','+=40') 会将.healcode 的高度增加40,但随后它会返回jquery 对象,而不是新的高度。因此,您尝试将#scheduleArea 的高度设置为[object],这会将其变为0。试试这个:

function () { 
    $j("#scheduleArea").animate({height: $j('.healcode').css('height','+=40').height()}, {queue:false, duration: 1100, easing: 'easeOutBounce'}) 
}, 

注意在高度加 40 后对 .height 的额外调用。

http://jsfiddle.net/CFCnZ/

注意:与其他答案不同,我将问题解释为您希望实际将高度添加到 .healcode 元素,而不仅仅是容器。不确定哪个是正确的。

【讨论】:

  • 你是完全正确的,它完全有效。解释措辞不佳的问题的奖励积分!
【解决方案2】:
function () { 
    $j("#scheduleArea").animate({height: $j('.healcode').css('height') + 40}, {queue:false, duration: 1100, easing: 'easeOutBounce'}) 
}

【讨论】:

    【解决方案3】:
    height: ( $j('.healcode').height()) + 40 ) + 'px' ;
    

    parseInt() 是必需的,因此您可以对值执行数学运算。

    【讨论】:

    • api.jquery.com/height - ".height() 返回一个无单位的像素值(例如,400)。当需要在数学中使用元素的高度时,建议使用 .height() 方法计算。”