Выберите и отключите каждое поле ввода в форме, завернутые в таблицу в jquery

Я отключаю форму на основе флажка...

У меня проблемы с добавлением атрибута отключен.

вот что я получил до сих пор: HTML:

<table id="shipInfoTable">
  <tr>
   <td>Name:</td>
   <td><input type="text" name="name" /></td>
  </tr>
  ...
</table>

Селектор Javascript / манипулирование атрибутами (jquery):

$("#shipInfoTable tbody tr td input").each(function(index, item){
    item.attr("disabled", true);
});

Ошибка консоли Chrome Dev:Uncaught TypeError: Object #<an HTMLInputElement> has no method 'attr'

Когда я предупреждаю item в пределах .each() это предупреждает [object HTMLInputElement]

Не совсем уверен, как правильно выбрать элемент ввода. Что я делаю неправильно?

3 ответа

Решение

Функция не даст вам объект jQuery. Так должно быть:

$("#shipInfoTable input").each(function(index, item){
    $(item).attr("disabled", true);
});

(обратите внимание, что я также упростил ваш селектор, он все еще работает)
Если вы ничего не делаете с каждым элементом, это также будет работать:

$("#shipInfoTable input").attr("disabled", true);

....

$("#shipInfoTable tbody tr td input").each(function(){
    $(this).attr("disabled", true);
});

Проблема заключается в отсутствии $() в функции.each()...

$("#shipInfoTable tbody tr td input").each(function(index, item){
    $(item).attr("disabled", true);
});
Другие вопросы по тегам