如何修复Javascript NaN问题?

时间:2013-12-10 07:25:39

标签: javascript jquery html css

这是我的代码

  var total_center_buttons=$('.center_button').length;
  var center_button_height=$('.center_button:first-child').height();
  var total_center_button_height=total_center_buttons + center_button_height;
  alert(total_center_button_height);

此处total_center_button value =3center_button_height is 40同时提醒他们。它返回NaN。我也尝试了ParseInt但结果是一样的。请给我解决方案。

提前谢谢。
克里希纳

7 个答案:

答案 0 :(得分:3)

我们必须猜测,因为你没有引用DOM,但我的猜测是$('.center_button:first-child')与任何元素都不匹配。在空集上调用height()会返回undefined。当您尝试将其添加到上一行中的数字时,您会获得NaN

我怀疑你不想:first-child,而是

var center_button_height=$('.center_button').first().height();

...但是再次没有看到DOM,很难说。为避免重复的DOM查找,您可以这样做:

var buttons = $('.center_button');
var total_center_buttons = buttons.length;
var center_button_height = buttons.first().height();
var total_center_button_height = total_center_buttons + center_button_height;
alert(total_center_button_height);

.center_button:first-child只匹配两者具有类center_button 的元素,而是其父元素的第一个子元素。我上面的建议是基于你真正想要第一个按钮的假设,并且按钮不是他们父母的第一件事。

最后:

中的+
var total_center_button_height = total_center_buttons + center_button_height;

看起来很可疑。再一次没有看到标记,很难说,但你可能意味着*那里。

答案 1 :(得分:1)

伴侣, 你的帖子里有一个错字。请注意您将值分配给total_center_button_height

的代码行
var total_center_button_height = center_button_height + total_center_button_height;

问题所在,加法运算右侧的变量(total_center_button_height)尚不存在。用...替换该行

var total_center_button_height = center_button_height + total_center_buttons;

非常直接

希望有所帮助

利奥

答案 2 :(得分:0)

可能你需要写这个

var total_center_button_height=center_button_height + total_center_buttons;
  alert(total_center_button_height);

答案 3 :(得分:0)

您可以检查“isNaN”功能,这是检查参数是否为数字。

答案 4 :(得分:0)

试试这个:

$(function(){
      var total_center_buttons = $('.center_button').length > 0 ? $('.center_button').length : 0;
      if(total_center_buttons !=0){
         var center_button_height=$('.center_button:first-child').height();
         var total_center_button_height = center_button_height + total_center_button_height;
         alert(total_center_button_height);
      }
});

答案 5 :(得分:0)

你正在这样做:

var total_center_button_height=center_button_height + total_center_button_height;

即。 total_center_button_height用于声明它的同一行。这时它是未定义的。

我想,你应该这样做:

var total_center_button_height=center_button_height + total_center_buttons;

答案 6 :(得分:0)

尝试这样的事情:

var total_center_buttons=$('.center_button').length;
if (typeof total_center_buttons != 'undefined') { 
  var center_button_height=$('.center_button:first-child').height();
  var total_center_button_height=total_center_buttons + center_button_height;
  alert(total_center_button_height);
}