Jquery className为null或不是IE8中的对象
我在IE8中运行下面的代码,我得到的className为null或不是对象。有什么帮助吗 JS:Jquery className为null或不是IE8中的对象,jquery,css,Jquery,Css,我在IE8中运行下面的代码,我得到的className为null或不是对象。有什么帮助吗 JS: var validators = { allowalphanum: function (val) { return /^[a-z0-9]+$/i.test(val); }, allownospace: function (val) { return !/\s/.test(val); } } $('#submit_form .requi
var validators = {
allowalphanum: function (val) {
return /^[a-z0-9]+$/i.test(val);
},
allownospace: function (val) {
return !/\s/.test(val);
}
}
$('#submit_form .required').blur(function () {
var returnVal1 = true;
var classes = $(this).className.split(/\s+/);
for (var p in classes) {
if (classes[p] in validators) {
returnVal1 = returnVal1 & validators[classes[p]](input.val());
}
}
});
只需替换您的代码:
var classes = $(this).className.split(/\s+/);
为此:
var classes = this.className.split(/\s+/);
实际上,
className
是一个DOM属性。它不是jQuery对象的属性。只需替换代码即可:
var classes = $(this).className.split(/\s+/);
var classes = $(this).className.split(/\s+/);
为此:
var classes = this.className.split(/\s+/);
实际上,className
是一个DOM属性。它不是jQuery对象的属性
var classes = $(this).className.split(/\s+/);
我不记得className
是一个有效的jQuery方法.attr('class')
可能是您想要使用jQuery对象所需要的
var classes = $(this).className.split(/\s+/);
关于如何在没有jQuery的情况下做到这一点,其他答案已经发布
$(this)
不同于this
,因为第一个给你一个jQuery对象,第二个给你一个DOM对象
我不记得className
是一个有效的jQuery方法.attr('class')
可能是您想要使用jQuery对象所需要的
var classes = $(this).className.split(/\s+/);
关于如何在没有jQuery的情况下做到这一点,其他答案已经发布
$(this)
不同于this
,因为第一个给你一个jQuery对象,第二个给你一个DOM对象。使用以下两种方法之一:
var classes = this.className.split(/\s+/);
或者使用jQuery方法attr:
var classes = $(this).attr('class').split(/\s+/);
使用以下两种方法之一:
var classes = this.className.split(/\s+/);
或者使用jQuery方法attr:
var classes = $(this).attr('class').split(/\s+/);
你说这在IE8中被破坏了,但是
$(这个)。className
完全错误,不应该在任何浏览器中工作。你说这在IE8中被破坏了,但是$(这个)。className
完全错误,不应该在任何浏览器中工作。