这是我的代码

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条件为false且不执行内部语句。

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

代码有什么问题?

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

最佳答案

主题:

我假设您的tColumns.length可能没有您期望的值。我猜它具有未定义的值,不能将其解析为整数。

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

题外话 :

可能与您的问题无关。但是parseInt需要以常规方式使用第二个参数。

例如:

parseInt("34", 10);


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

09-25 19:32