jQuery не может проанализировать значение из элемента, который имеет идентификатор со специальным символом ‘*’

#c# #jquery #urlencode

#c# #jquery #urlencode

Вопрос:

Похоже, что jQuery не может анализировать значение из элемента, который имеет идентификатор со специальным символом «. Приведенное ниже утверждение ничего не возвращает, если идентификатор задания имеет специальный символ « т.е. item123 * 1

       var itemValue  = $(jobID).val(); 
  

Как C # в серверной части моего веб-приложения MVC, поэтому я попытался закодировать с помощью HttpContext.Current.Сервер.UrlEncode() перед отправкой данных для просмотра.
Но UrlEncode() не кодирует специальный символ ‘*’.

Кто-нибудь сталкивался с подобной проблемой раньше?

Комментарии:

1. * недопустимый символ для идентификатора элемента html. Вам нужно будет заменить его чем-то другим, например, подчеркиванием.

2. @user1751825 Вы должны буквально опубликовать это как ответ, потому что это все, что нужно. Подождите секунду, это допустимый HTML. Я никогда не использовал его в качестве идентификатора, но технически он действителен.

3. Может помочь некоторый контекст. Как насчет того, чтобы попробовать console.log (JobID); ?

Ответ №1:

Идентификаторы со звездочкой ( * ) принимаются в HTML5, но звездочка используется как метасимвол в строках селектора CSS. Вам нужно экранировать метасимволы, используя две обратные косые черты ( \ ).

Смотрите здесь для получения дополнительной информации.

 console.log($("#item123\*1").val());  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="item123*1" value="test">