功能仅部分执行

时间:2015-11-04 19:24:58

标签: javascript function

我想我是javascript的初学者,正如标题所示,我的功能将无法完全执行。

function showBorder2(classid){

            var first2 = document.getElementById("swordsmanIcon");
            var second2 = document.getElementById("marksmanIcon");
            var third2 = document.getElementById("scribeIcon");

            first2.style.borderColor = "transparent";
            second2.style.borderColor = "transparent";
            third2.style.borderColor = "transparent";
                classid.style.borderColor = "Aqua";
            alert("1");
            var classType = elementid.id;
                            alert("2");
            window.classType = classType;

        }

我已经进行了一些测试,我发现警报1触发,但警报2没有...这可能是一个简单的错误,但我真的看不到它。

提前致谢!

2 个答案:

答案 0 :(得分:0)

如果alert1正在触发而不是alert2,则问题必须是elementid未定义,并且尝试访问未定义变量的属性将引发错误并中断js的执行。解决方案: a)确保定义elementid b)如果您不能保证elementid的定义,请在尝试访问子属性之前添加一个检查以查看它是否已定义。

简单的简写是var classType = elementid && elementid.id;

^这样的事情很简短:

var classType;
if(elementid) {
   classType = elementid.id;
}

答案 1 :(得分:0)

您的元素变量之一(first2,second2,third2,classid)可能为null或未定义。在使用变量之前检查null或undefined是很好的防御性编程(特别是在javascript中)。

我猜测当调用showBorder2函数时,参数传递给“classid”要么不是有效元素,要么没有传递给它。