jQuery обход элементов формы

Я пытаюсь скрыть метку формы и текстовое поле по умолчанию и сделать так, чтобы они отображались при выборе параметра. Я не понимаю, почему мой код продолжает давать сбой.

<tr>
   <td><label>My Label</label></td>
   <td>
      <select name="1" id="1">
         <option value="2" selected="selected">2</option>
         <option value="3">3</option>
         <option value="4">4</option>

         <option value="Other">Other</option>
       </select>
   </td>
   <td><label class=".otherHide">Other</label></td>
   <td><input class=".otherHide" type="text" name="otherSpec" id="otherSpec" /></td>
</tr>

jQuery(document).ready(function()
{
   jQuery('#1').change(function()
   {
      jQuery('#1 option:selected').each(function()
      {
         if (jQuery(this).text() == 'Other')
         {
            jQuery('.otherHide').each(function()
            {
               jQuery(this).animate({opacity: 0.0}, 2000);
            });
         }
      });
   }).change();
});

В настоящее время он настроен на скрытие элементов формы, почему я тестировал.

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

Почему jQuery не выбирает мои элементы? >.‹


person Kane    schedule 22.10.2009    source источник


Ответы (1)


Обратите внимание на спецификацию HTML 4.01:

Токены ID и NAME должны начинаться с буквы ([A-Za-z]), за ними может следовать любое количество букв и цифр ([0-9]). , дефисы ("-"), символы подчеркивания ("_"), двоеточия (":") и точки (".").

Кроме этого, в вашем HTML нет элемента с классом otherHide.

person cletus    schedule 22.10.2009
comment
Идентификаторы на самом деле не являются числами. Я просто использовал их, чтобы не дать людям сосредоточиться на неактуальной информации. Оглядываясь назад, плохая идея xD Кажется, я также вставил старый код ›_› Два последних TD должны читать: ‹td›‹label class=.otherHide›Other‹/label›‹/td› ‹td›‹input class= .otherHide type=text name=otherSpec id=otherSpec /›‹/td› - person Kane; 22.10.2009
comment
вам нужен class=otherHide, а не class=.otherHide. Точка используется только в селекторе CSS, чтобы указать, что вы ищете класс. - person Gareth; 22.10.2009
comment
...полчаса пялился на этот код, пытаясь понять, почему jQuery не работает хорошо, и оказывается, что это такая простая ошибка в HTML ›_› Спасибо за помощь ;) - person Kane; 22.10.2009