我正在尝试根据另一个元素的高度设置某些元素的高度和边距,但它不起作用。
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的情况下这样做。
答案 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';
}
你的+将被视为字符串连接,否则会给你错误的值。