2015-05-05 2 views
2

Я пытаюсь улучшить некоторые javaScript, которые я написал, чтобы нажимать элементы в массив, если они ранее не были в массиве. Затем я хочу, чтобы этот массив отображался в поле выбора. У меня было все это в javascript, но я подумал, что для меня было бы интересным упражнением попробовать сделать то же самое в jQuery. Я думаю, что я близко, но по какой-то причине, консоль в браузере дает мне ошибку следующим образом:массив нажатие на кнопку click jquery

"[Error] SyntaxError: Cannot use the keyword 'var' as a variable name. (anonymous function)"

Вот мой код до сих пор. Я включил (в этом порядке) мою попытку в jQuery, а затем мой рабочий код javascript (закомментировал), а также мою функцию, обновляющую список. В конечном итоге я попытаюсь воссоздать эту функцию в jQuery. Может ли кто-нибудь сказать мне, почему я получаю эту ошибку и что я делаю неправильно в своем jQuery? Спасибо.

 var clientArray = []; 
     var clientInput = document.getElementById("newClt"); 
     var sel = document.getElementById("cltList"); 


      $("#addCltBtn").click(function(){ 

       var found = $.inArray(clientInput, clientArray) > -1; 

       if(found >= 0) { 
        //Element was found update errorMessage div 
        $(errorMessage).html("This Client Already Exists"); 

       } else{ 
         clientArray.push(clientInput.value); 

       } 
       }); 
    // 
    //  document.getElementById("addCltBtn").onclick=function(){ 
    //   
    //   console.log(clientArray.length); 
    //   if (!contains(clientArray,clientInput.value)) { 
    //    clientArray.push(clientInput.value); 
    //    console.log("Objects: " + clientArray.join(", ")); 
    //    updateDropList(clientInput.value); 
    //   } 
    //   else alert("You already have a client by that name!"); 
    //   } 


     function updateDropList(value){ 
       var opt = document.createElement('option'); 
       opt.innerHTML = value; 
       opt.value = value; 
       sel.appendChild(opt); 

     } 

function contains(a, obj){ 
      for(var i =0; i< a.length; i++){ 
       if(a[i] === obj){ 
        return true; 
       } 

      } 
      return false; 
     } 
+0

Опубликовать все соответствующие коды \ HTML-разметка в самом вопросе –

+0

Когда происходит эта ошибка? На какой строке это указывает? Образец кода, который вы включили, выглядит нормально. – Pavlo

+0

указывает на строку 65, которая на моем коде var найдена = $ .inArray (clientInput, clientArray)> -1; –

ответ

4
var found = $.inArray(clientInput, clientArray) > -1; 

Почему вы ставите сравнения в этом заявлении? Это то, что бросает вашу ошибку. Вы проверяете, установлено ли значение больше или равно 0 в другом месте, поэтому удаление> -1 должно заставить все работать.

+1

Или как он возвращает логическое значение, просто используйте его –

+0

Да, A.Wolff, который также будет работать. –

+0

Это устраняет ошибку. Спасибо. –

Смежные вопросы