2011-02-12 7 views
0

나는 놀고있는 요소의 이름을 전달하고 해당 클래스를 변경하고 싶습니다. 다른 함수에서이 함수를 호출합니다.자바 스크립트 변수 만들기

var name = $("#nuser");  var nameInfo 
    = $("#nuserInfo"); var email = $("#email"); var emailInfo = 
    $("#emailInfo"); 

오류 수신 :

이 이

catch되지 않은 형식 오류 : 개체 이름이

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

하여 각 요소의 변수 이름이 부여 된 이러한 함수를 호출 메소드 없음 '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

문자열 인 '이름'을 함수에 전달하고 있습니다. 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 객체가 들어있는 변수 이름 대신 'name'문자열이 함수에 전달 된 것처럼 보입니다. 문자열 객체에는 removeClass 메소드가 없습니다.

+0

이되지 올바른 방법입니다. 내가 자바 스크립트라고 가정합니다, 괜찮아요 이름은 내가 할 수있는 개체입니다. 추가. thats 이유는 내가 필드 + Info.addClass() 또한 ... 나는 올바른 연습이 아닌 것 같아요. – goingsideways