javascript使变量成为一个元素

时间:2011-02-12 06:13:12

标签: jquery validation function

我想传递我正在玩的元素的名称,然后更改它的类。我从另一个函数调用这些函数。

   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");  
 }

2 个答案:

答案 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");  
 }