Javascript:使用元素高度作为像素值来设置其他元素的属性

时间:2013-12-27 12:08:12

标签: javascript css height margins

我正在尝试根据另一个元素的高度设置某些元素的高度和边距,但它不起作用。

  function matchHeight(divName) {
    var Sheight = document.getElementById(divName).style.height;

    document.getElementById('bookmark').style.height = Sheight + '45px';
    document.getElementById('bookmarkend').style.marginTop = Sheight + '45px';
    document.getElementById('bookmarktagI').style.height = Sheight + '255px';
  }

我的功能出了什么问题?

如果可能,我宁愿在没有jquery的情况下这样做。

2 个答案:

答案 0 :(得分:2)

如果您的样式设置为内联,即<div style="height: 100px;"></div>,则很可能您的问题在于解析height样式值。在这种情况下,Sheight"100px",它将简单地与形成类似100px45px的其他值连接,这不是很好。

要解决此问题,请使用parseInt将值解析为整数并使用正确的加法:

var Sheight = parseInt(document.getElementById(divName).style.height, 10);
document.getElementById('bookmark').style.height = (Sheight + 45) + 'px';

答案 1 :(得分:0)

试试这个:

function matchHeight(divName) {
  var Sheight = parseInt(document.getElementById(divName).style.height);

  document.getElementById('bookmark').style.height = Sheight + 45 + 'px';
  document.getElementById('bookmarkend').style.marginTop = Sheight + 45 + 'px';
  document.getElementById('bookmarktagI').style.height = Sheight + 255 + 'px';
}

你的+将被视为字符串连接,否则会给你错误的值。