2010-04-14 3 views
3

Получение сообщения" Ожидаемый ",' или '{' но найденный # 44559 ''. Мой код выглядит следующим образом:Получение сообщения "Ожидаемый", 'или' {'но найденный' [селектор] '"

var valueid = $("div#center-box div#empid-textbox input").val(); //valueid=44559 
if($("div#esd-names li#" + valueid).length > 0){ 
    //DO SOMETHING; 
}; 

Я получаю значение того, что вводятся в поле ввода текстового поля, которое в случае, если «44559» не может понять, почему я получаю эту ошибку ,

Я вызываю функцию получения значения valueid со следующим кодом. После нажатия клавиши ENTER в определенном текстовом поле значение текстового поля извлекается и побежал к элементам списка, чтобы увидеть, если он существует ... если это делает - // СДЕЛАТЬ ЧТО-ТО //

$("div#center-box div#empid-textbox input.id").keypress(function(e){ 
    key = e.which; 
    if(key===13){ 
    valueid = $("div#center-box div#empid-textbox input").val(); 
    if($("div#esd-names li[class*='" + valueid + "']").length > 0){ 
     //DO SOMETHING; 
    }; 
    }; 
}); 

ответ

5

Вы используете число как id. Это запрещено.

+0

, когда я использую его как класс вместо этого я получаю ту же ошибку, кроме него говорит «... но нашел" 0.44559» – sadmicrowave

+0

@sadmicrowave: Это было бы потому, что «.44559» интерпретируется как число с плавающей запятой, где 0 - целая точка. Вы найдете то же самое на многих языках программирования. –

+0

, но число равно 44559 (без десятичной) - нет .44559 - по какой-то причине firefox добавляет префикс 0. к моему номеру сам по себе. любые рекомендации? – sadmicrowave

0

Что вы пытаетесь проверить? если элемент списка существует?

*/********* ********** РЕДАКТИРОВАНИЕ/*

Я пытался воссоздать его так это то, что у меня есть:

HTML:

<div id="center-box"> 
      <div id="empid-textbox"> 
       <input type="text" class="id" /> 
      </div> 
     </div> 
     <div id="esd-names"> 
      <ul> 
       <li class="1">John Doe</li> 
       <li class="2">Jane Doe</li> 
       <li class="4">John Smith</li> 
       <li class="8">Jane Smith</li> 
      </ul> 
     </div> 

JavaScript:

$(document).ready(function() 
{ 
       $("div#center-box div#empid-textbox input.id").keypress(function(e) 
       { 
        key = e.which; 
        if (key === 13) 
        { 
         valueid = $("div#center-box div#empid-textbox input").val(); 

         /*this is the only thing I changed*/ 
         if ($("div#esd-names li[class*='" + valueid + "']") != null) 
         { 
          //DO SOMETHING; 
          $("div#esd-names li[class*='" + valueid + "']").css("background-color", "red"); 
         } 
        } 
       }); 
} 

И это выдвигает на первый план правильный Ли каждый раз .. час вы можете использовать это ... извините, если я не помог.

+0

Да ... Я заготовлю действие, если оно существует (действие DO SOMETHING в моем примере). – sadmicrowave

+0

, вы можете попробовать либо проверить, если не null: if ($ ("div # esd-names li #" + valueid)! = Null) или если идентификатор содержит ваше значение с помощью: if ($ ("div # esd-names li [id * = "+ valueid +"]) – drusnov

+0

ни один из этих предложений не работал .... – sadmicrowave

0

Помещенный число в атрибуте rel, и проверьте, что $("div#esd-names li[rel=" + valueid + "]")

+0

Когда я это делаю, я получаю сообщение об ошибке firefox: «Ожидаемый идентификатор или строка для значения в селекторе атрибутов, но найденный« 44559 »» – sadmicrowave