这可能是一个愚蠢的问题,但我迷路了!
所以,我试图通过添加值来改变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
你们有什么想法???
提前谢谢!
答案 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);
}