我想传递我正在玩的元素的名称,然后更改它的类。我从另一个函数调用这些函数。
function addErrClass(field){
field.removeClass("valid");
field + Info.removeClass("valid");
field.addClass("error")
field + Info.addClass("error");
}
function addValClass(field){
field.removeClass("error");
field + Info.removeClass("error");
field.addClass("valid")
field + Info.addClass("valid");
}
我通过
调用这些函数if(data == "yes")
{
addErrClass('name');
nameInfo.text("Please choose another usename, " + checkuser + " is in use");
} else {
addValClass('name');
nameInfo.text("Awesome, " + checkuser + " is available");
}
每个元素都有一个变量名称:
var name = $("#nuser"); var nameInfo
= $("#nuserInfo"); var email = $("#email"); var emailInfo =
$("#emailInfo");
收到错误:
未捕获的TypeError:对象名称没有方法'removeClass'
基本上我试图用每个函数来实现以下功能
name.addClass 要么 email.removeClass
我会在很多字段中使用它,但是我会尝试将代码保持在最低限度以解决我的问题。
与答案一同编辑。致谢
if(data === "yes")
{
addErrClass(name);
addErrClass(nameInfo);
nameInfo.text("Please choose another usename, " + checkuser + " is in use");
} else {
addValClass(name);
addValClass(nameInfo);
nameInfo.text("Awesome, " + checkuser + " is available");
}
答案 0 :(得分:1)
您似乎将字符串'name'传递给函数而不是包含jquery对象的变量名称。字符串对象上没有removeClass方法。
答案 1 :(得分:1)
您将'name'作为字符串传递给函数。由于String类型没有名为'removeClass'的方法,因此您收到此错误。此方法仅存在于jQuery对象上。
既然你说你已经实例化了一个名为name的变量jQuery对象,那就试试这个:
if(data === "yes")
{
addErrClass(name);
nameInfo.text("Please choose another usename, " + checkuser + " is in use");
} else {
addValClass(name);
nameInfo.text("Awesome, " + checkuser + " is available");
}