选择并禁用表单中的每个输入字段,包含在jquery中的表中

时间:2010-02-27 18:54:46

标签: jquery jquery-selectors jquery-traversing

我正在禁用基于复选框的表单...

我在添加禁用属性时遇到问题。

这是我到目前为止所得到的: 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 Console错误: Uncaught TypeError: Object #<an HTMLInputElement> has no method 'attr'

当我在item警报.each()

时提醒[object HTMLInputElement]

不太确定如何正确选择输入元素。我做错了什么?

3 个答案:

答案 0 :(得分:12)

该函数不会为您提供jQuery对象。它应该是:

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

(请注意,我也简化了你的选择器,它仍然可以工作)
如果你没有对每个项目做任何事情,那么这也会有效:

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

答案 1 :(得分:4)

...

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

答案 2 :(得分:0)

问题是.each()函数中缺少$()......

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