我的jQuery有以下代码:
highlight: function(element, errorClass, validClass) {
$(element).addClass(errorClass).addClass('errorImage').removeClass(validClass).removeClass('validImage');
if($(element.form).find("input[type=radio") == true) {
$(element.form).find("input[id=" + element.id + "]").addClass(errorClass).addClass('errorImageRadio');
}else{
$(element.form).find("input[id=" + element.id + "]").addClass(errorClass).addClass('errorImage');
}
},
我正在尝试的是,如果输入类型是收音机或复选框,它应该基本上使用不同的类,我在这里遗漏了一些东西,不知道那是什么。
它是jQuery验证器插件的一部分。
答案 0 :(得分:1)
jQuery对象总是很简单,如果要测试jQuery对象是否与任何DOM元素匹配,请使用.length
属性。
.find()
查询中还有一个缺少的方括号:
而不是
if($(element.form).find("input[type=radio") == true)
尝试:
if($(element.form).find("input[type=radio]").length)
对于它的价值(非常多),你应该使用ID选择器按ID来定位元素,而不是属性选择器。由于您已经在变量中包含DOM元素,因此您可以将其包装在jQuery对象中:
$(element.form).find("input[id=" + element.id + "]").addClas...
变为
$(element).addClas...
等等...