【问题标题】:JQuery: Changing Height Based on Another ElementJQuery:根据另一个元素改变高度
【发布时间】:2012-06-10 01:40:28
【问题描述】:

我有两个 DIV:一个 DIV 根据浏览器动态更改大小(响应式设计),我希望另一个 DIV 根据第一个 DIV 的高度修改其高度。我认为最简单的方法是使用 JQuery 动态更改高度。

我尝试了以下方法:

$('section#div2').css({height:$(this).css('height').replace($('section#div1 div.div1_container').height()+'px')});

但是,该代码不起作用。其他各种版本也不能正常工作。

我的问题是:如何在不更改给定元素的所有属性的情况下替换单个 CSS 属性?

编辑:这就是动态第一个 DIV 的编码方式...

首先是第一个 DIV 的容器:

position: relative;
padding-bottom: 50%;
padding-top: 30px; height: 0; overflow: hidden;
margin:0 0.7em 0 0.7em;

然后,该容器内的内部对象(可能不相关):

position:absolute;
top:0;
left:0;
width:100%;
height:100%;

【问题讨论】:

    标签: jquery css


    【解决方案1】:

    使用这个:

    $('section#div2').height($('section#div1').height());
    

    【讨论】:

    • 我不知道你说这个是什么意思...对不起!
    • 是的,但它根本不引用第一个 DIV,那么它如何获得那个高度呢?我试过了,它没有做任何事情。你的意思是把它包含在我上面的 CSS 选择器中吗?
    • 感谢这个也有效!我已经接受了第一个答案,尽管这也有效。我会给你一个投票的答案 - 我很感激你的帮助!
    • 至于哪个更好,我希望通过 .css() 选择器而不是 .height() 属性直接更新 CSS。虽然这个答案在技术上是更少的代码行数。
    • @WillBuddha 并不矛盾,但如果您查看第 6827 和 6670 行的 jquery 1.7 source,在内部,$.height() 正在调用 $.css() 方法。
    【解决方案2】:
    $('section#div2').css('height', $('section#div1').height()+'px');
    

    【讨论】:

    • 我试过了,还是不行。如果有任何影响,我将使用第一个 div 的动态代码更新问题...基本上,当我尝试您列出的代码时,结果相同,页面高度没有变化已加载。
    • html 标记实际上更重要一点。我已经用我认为你正在尝试做的事情更新了 jQuery,基本上你希望 section#div2 的高度与 section#div1 的高度相同吗?
    • 是的,但这仍然行不通。我认为问题可能出在第一个 DIV 的编码方式上,因为高度在技术上为零。但是,我也尝试将其设置为等于内部 DIV(即 100%),但它仍然无法正常工作......不过感谢您迄今为止的想法!
    • 好的,我添加了另一个内部 DIV 设置为 100% 的宽度和高度,它起作用了!感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2022-07-15
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多