【问题标题】:jQuery does not add values, but lines themjQuery 不添加值,而是排列它们
【发布时间】:2015-06-04 06:48:32
【问题描述】:

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

所以,我试图通过添加值来使用 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

你们知道为什么吗???

提前谢谢你!

【问题讨论】:

  • 您必须使用Number将字符串转换为数字。

标签: jquery css addition


【解决方案1】:

问题是因为您要连接字符串值,而不是添加整数。您需要将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);
}

【讨论】:

  • 谢谢!奇迹般有效!但我还是很惊讶,因为我一直在使用这种脚本,这是第一次它不起作用。部门工作..
  • 除法会起作用,因为/ 运算符会导致从字符串到整数的隐式转换。 + 运算符用于字符串的连接和整数的添加,因此不会发生类型强制。
  • 谢谢。你应该得到一个 cookie :)
  • 我喜欢饼干 :D 很高兴为您提供帮助。
  • 您是否知道为什么变量仍在调整大小时排队?
【解决方案2】:

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

 var innerH = +divH + 130;  // 230

将字符串转成数字:Number(divH),parseInt(divH);

 var innerH =  130 + divH;  // 230

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

【讨论】:

    【解决方案3】:

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

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

    var innerH = parseInt(divH) + 130;
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          猜你喜欢
          • 2016-06-02
          • 1970-01-01
          • 1970-01-01
          • 2021-01-23
          • 2017-04-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多