1

这是我的代码,

columnLength = tColumns.length;

    if (parseInt(columnLength) ==2) {
        tColumns[0].parentNode.insertBefore(tD, tColumns[0].nextSibling);
    }
    if (parseInt(columnLength) >= 3) 
    {
        tColumns[0].parentNode.insertBefore(tD, tColumns[0].nextSibling);
        tColumns[0].parentNode.insertAfter(tD, tColumns[0].nextSibling);
    }`

假设 columnLength 为1 .. 第一个IF条件为假并且它不执行内部语句。

即使第二个条件为假,因为1 不大于等于 3,但语句正在执行!

代码有什么问题?

我正在使用 Visual Studio IDE 进行调试,即使在即时窗口中,IF 条件也会返回 false,如下所示。

在此处输入图像描述

4

1 回答 1

0

本体:

我假设您的 tColumns.length 可能没有您期望的值。我猜它的值 undefined 不能被解析为整数。

http://jsfiddle.net/FRXkM/1/

无关 :

可能与你的问题无关。但是 parseInt 以传统方式需要第二个参数。

例如:

parseInt("34", 10);

有关 parseInt 及其参数的信息,请访问http://www.w3schools.com/jsref/jsref_parseint.asp

于 2013-10-18T09:28:36.640 回答