gpt4 book ai didi

javascript - 如何在javascript中创建行高的倍数?

转载 作者:行者123 更新时间:2023-11-29 18:31:20 25 4
gpt4 key购买 nike

我对 Javascript 和 JQuery 还是个新手。我编写了一个从文档就绪运行的小函数。其目的是将 div 的高度设置为行高的倍数:

function setLoginLinksHeight(numOfLines) {

var ll = hash(LOGIN_LINKS);
$(ll).css('line-height','130%');
var lh = $(ll).css('line-height');
var nh = lh * numOfLines; // Issue here
$(ll).height(nh);

}

从 FireBug 中,我检索到的行高是 15.5833px。当我将它乘以 2 时(例如),nh 设置为 NaN。我在这看到question检索到的值可以具有任何格式(%、px 等)。这太可怕了!

如何将返回值转换为不带单位的像素数,以便能够创建它的倍数?在 Javascript 或 JQuery 中是否有可用的库/函数?在这种情况下推荐的做法是什么?谢谢。

编辑

我按照 mblase75 的解决方案开发了一个小型单元拆分器:

function splitUnit(e) {

var eUnit = '';
var eValue;

if( e && ( length = e.search( /px/ ) ) ) {
eUnit = 'px';
eValue = e.substr( 0, length );
} else if ( e && ( length = e.search( /em/ ) ) ) {
eUnit = 'em';
eValue = e.substr( 0, length );
} else {
eValue = e;
}

return new Array( eValue, eUnit );

}

最佳答案

更改为:

var lh = parseFloat($(ll).css('line-height'));

当然,这并不能保证您将获得一定数量的像素,只是您将获得一个数字。要单独提取单位,请添加:

var lhunits = $(ll).css('line-height').match(/\D+$/)[0]; 
// gets first element of array

...然后将计算与旧单位结合起来:

var nh = (lh*numOfLines) + lhunits;

关于javascript - 如何在javascript中创建行高的倍数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7931406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com