javascript / jQuery中是否有一种方法可以使用值为“60px”和“40px”的两个变量并将它们组合在一起以获得“100px”?
或者在更一般的意义上,我正在尝试计算物体相对于其他物体的位置,如果我可以这样做,那将非常方便:
$('#object2').css('left', $('#object1').css('left')+'60px');
当然,这只是无效的“40px60px”。
答案 0 :(得分:18)
从字符串中删除px,添加值,然后再添加px
(parseInt("40px".replace(/px/,""))+60)+"px"
答案 1 :(得分:6)
可能最有效的方式是
parseInt("40px", 10) + parseInt("60px", 10) + "px"
parseInt调用中的10
是必要的,以防止错误地计算在基数10之外的其他值。
答案 2 :(得分:4)
您正在寻找parseInt()功能。
var left1 = "40px";
var left2 = "60px";
// Add the integer values of the left values together
var leftTotal = parseInt( left1, 10 ) + parseInt( left2, 10 ) + "px";
同样值得研究的是parseFloat()方法。它与parseInt()的作用相同,但适用于带小数的数字(也称为浮点值)。
答案 3 :(得分:1)
var shiftedRight = (parseFloat($('#object1').css('left')) + 60) + 'px';
$('#object2').css('left', shiftedRight);
parseFloat
将仅解析字符串的前缀。
答案 4 :(得分:0)
你可以通过解析对象的css.left值来做到这一点,有点像这样:
$('#object2').css('left', (parseInt($('#object1').css('left')) + 60) + 'px');
但是你应该记住,css.left值可能不是px
而是%
,em
等等。所以干净的方式是使用{{3因为这会给你正确的像素值。
$('#object2').css('left', ($('#object1').offset().left + 60) + 'px');