0

我有以下脚本来获取浏览器的高度,然后从浏览器的高度中减去页眉和页脚的高度:

var a = $(window).height();
alert (a);
var b = $('#header').css('height').replace(/[^-\d\.]/g, '');
alert (b);
var c = $('#header').css('height').replace(/[^-\d\.]/g, '');
alert (c);
var d = (a-(b+c));
alert (d);
$('#block').height(d);

所以它会发出警报,
1.)699
2.)100
3.)50
然后是错误的部分:
4.)-9351

这里有什么问题?

4

4 回答 4

4

变量 b 和 c 包含字符串,当您在 Javascript 中对字符串使用 + 运算符时,它们会被连接起来。

即表达式“100”+“50”的计算结果为“10050”。

.height()我建议使用 jQuery方法获取元素的高度

于 2012-10-01T10:51:59.173 回答
2

使用 parseInt :

var a = parseInt($(window).height());
alert (a);
var b = parseInt($('#header').css('height').replace(/[^-\d\.]/g, ''));
alert (b);
var c = parseInt($('#header').css('height').replace(/[^-\d\.]/g, ''));
alert (c);
var d = (a-(b+c));
alert (d);
$('#block').height(d);
于 2012-10-01T10:53:49.473 回答
1

您可以使用 jquery height(returns integer) 方法。在您的代码中 b 和 c 是字符串。jsfiddle

 var a = $(window).height();
    alert (a);
    var b = $('#header').height();
    alert (b);
    var c = $('#header').height();
    alert (c);
    var d = (a-(b+c));
    alert (d);
    $('#block').height(d);
于 2012-10-01T10:52:47.700 回答
0

试试这个...只需替换固定数字

var a = parseInt('600');
var b = parseInt('100');
var c = parseInt('50');
var d = (a-(b+c));
于 2012-10-01T11:01:24.830 回答