JavaScript делает переменную элементом - PullRequest
0 голосов
/ 12 февраля 2011

Я хотел бы передать имя элемента, с которым я играю, а затем изменить его класс. Я вызываю эти функции из другой функции.

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

получена ошибка:

Uncaught 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 ]

1 голос
/ 12 февраля 2011

Вы передаете '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");  
 }
1 голос
/ 12 февраля 2011

Вы, кажется, передаете строку 'name' в вашу функцию вместо имени переменной, содержащей ваш объект jquery. В строковом объекте нет метода removeClass.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...