Javascript错误“;“未实施”;在IE8中

Javascript错误“;“未实施”;在IE8中,javascript,Javascript,我在IE8 F12工具中遇到这个错误 我试图编写非结构化的验证代码,其中我将在body onload上调用validate()方法,它将根据其类名在元素的特定事件上附加验证代码。(例如,对于类为“required”的文本框,它将在其onblur上附加required() 这个错误的原因是什么 编辑 问题不在getElementsByCassName()方法中,因为它返回的元素数组带有所需的类,正如您在IE8中看到的那样 试试这个解决方案-我测试了它,它对您的代码片段有效(您必须使用他在“更新:

我在IE8 F12工具中遇到这个错误

我试图编写非结构化的验证代码,其中我将在body onload上调用validate()方法,它将根据其类名在元素的特定事件上附加验证代码。(例如,对于类为“required”的文本框,它将在其onblur上附加required()

这个错误的原因是什么

编辑

问题不在getElementsByCassName()方法中,因为它返回的元素数组带有所需的类,正如您在IE8中看到的那样


试试这个解决方案-我测试了它,它对您的代码片段有效(您必须使用他在“更新:”段落中编写的代码):

看起来IE8不支持
GetElementsByCassName

顺便说一句:这是一个使用jQuery的完美例子——因为您不会遇到这样的问题:)

编辑: 我是这样测试的:

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript">

            function getElementsByClassName(node, classname) {
                var a = [];
                var re = new RegExp('(^| )'+classname+'( |$)');
                var els = node.getElementsByTagName("*");
                for(var i=0,j=els.length; i<j; i++)
                    if(re.test(els[i].className))a.push(els[i]);
                return a;
            }

            window.onload = function() {
                var a = getElementsByClassName(document.body,"required");

                for(var i = 0;i < a.length;i++)
                    a[i].onblur = function() { alert("blured")};
            };
        </script>
    </head>
    <body>
       <input class="required" type="text" name="uno" />
       <input class="required" type="text" name="duno" />
    </body>
</html>

函数getElementsByClassName(节点,类名){
var a=[];
var re=new RegExp('(^ |)'+classname+'(|$);
var els=node.getElementsByTagName(“*”);

对于(var i=0,j=els.length;i
getElementsByClassName
在IE8中不受支持

你可以试试或者。它更灵活,使用起来也很舒服

在您的情况下,它将是:

var a = document.querySelectorAll(".required");

您可以使用基本css选择器获取DOM元素,例如
querySelector(“#ID.class”)
就像你在jQuery中所做的那样。

可能是一个范围问题。

你能猜到确切的位置吗?可能是tenhouse是对的。.他给出的链接很好。.试试看,该方法在那里,数组a被正确填充,现在我意识到问题是a[I]是DispHTMLInputElement类型,它没有onblur和onclick事件,正如我在IE的type列中看到的那样,无论如何,我可以将它转换为input元素吗?嘿,看到IE8 watch窗口的打印屏幕了吗?我真的不想使用jQuery,你在IE8中测试过它吗?玛莎:是的,在IE8中测试过它…如果它不工作,为什么不使用Christoph的解决方案?@Christoph奇怪…对我来说它不起作用:当然它不起作用了…在
quirksmode
…介意添加一个doctype吗?:-Dwell,试试
querySelectorAll
,看看这是否能解决你的问题…你有任何自定义插件或框架在运行吗?是的,它在IE8中起作用,但知道有什么方法使它在IE5(甚至IE7)中起作用吗-以防万一