2011-02-12 58 views
0

我想通過我玩的元素的名稱,然後更改其類。我從另一個函數調用這些函數。JavaScript製作變量元素

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

錯誤:

未捕獲的類型錯誤:對象名有沒有方法'removeClass'

基本上我試着去實現與各功能

name.addClass以下 或 email.removeClass

我將在很多領域用這個,但認爲ID嘗試和代碼保持在最低水平爲我的問題。

編輯答案。感謝

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

回答

1

您正在將'name'作爲字符串傳入函數。由於String類型沒有名爲'removeClass'的方法,因此您收到此錯誤。這個方法只存在於jQuery對象上。

既然你說你已經實例化一個變量,名爲名稱是一個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"); 
} 
1

你似乎是傳遞字符串'名稱'您的函數,而不是包含您的jQuery對象的變量名稱。字符串對象上沒有removeClass方法。

+0

這是不正確的方法。我認爲JavaScript會說,好的名字是一個對象,我可以.addClass它。這就是爲什麼我有字段+ Info.addClass()也......我想這不是正確的做法 – goingsideways 2011-02-12 06:24:54