jQuery不会添加值,而是对它们进行排序

时间:2015-06-04 06:48:33

标签: jquery css addition

这可能是一个愚蠢的问题,但我迷路了!

所以,我试图通过添加值来改变jQuery的div高度,但它们并没有加起来,而是衬里。也许有些人遇到过同样的问题?

我的代码:

jQuery( document ).ready(myfunction);
$(window).resize(myfunction);

function myfunction() {
    var divH = $('.container').css("height");
    divH = divH .replace(/px/g, "");

    var innerH = divH + 130;

    $('.divRight').css("width", innerH);
}

例如,.container高度为100px,输出应为230px(100 + 130),但它显示为100130

你们有什么想法???

提前谢谢!

5 个答案:

答案 0 :(得分:2)

问题是因为您连接字符串值,而不是添加整数。您需要将height()值转换为使用parseInt()可以实现的int:

$(document).ready(myfunction);
$(window).resize(myfunction);

function myfunction() {
    var divH = parseInt($('.container').css("height"), 10);
    var innerH = divH + 130;
    $('.divRight').css("width", innerH);
}

答案 1 :(得分:1)

您必须在字符串之前将字符串转换为数字添加+ 或使用 number() parseInt()

 var innerH = +divH + 130;  // 230

将字符串转换为数字:数字(divH), parseInt (divH);

 var innerH =  130 + divH;  // 230

注意:实际上divH是字符串,当你将它添加到数字时它会连接而不是添加

答案 2 :(得分:1)

始终对数字字符串使用 parseInt 。它将提供准确的结果。如果您必须以小数计算,则为此目的使用 parseFloat

var divH = parseInt($('.container').css("height"), 10);

var innerH = parseInt(divH) + 130;

答案 3 :(得分:0)

您正在为字符串添加数字。如果您在添加130之前执行parseInt(divH, 10),那么您应该没问题。

答案 4 :(得分:0)

我在这种情况下你应该使用JQuery的高度,宽度函数     

 function myfunction() {
        var divH = $('.container').height();
        var innerH = divH + 130; 
        $('.divRight').width(innerH);
    }
相关问题