8

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

我无法添加 disabled 属性。

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

当我发出警报时item.each()它会发出警报[object HTMLInputElement]

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

4

3 回答 3

12

该函数不会给你一个 jQuery 对象。它应该是:

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

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

$("#shipInfoTable input").attr("disabled", true);
于 2010-02-27T18:56:01.870 回答
4

……

$("#shipInfoTable tbody tr td input").each(function(){
    $(this).attr("disabled", true);
});
于 2010-02-27T18:58:59.977 回答
0

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

$("#shipInfoTable tbody tr td input").each(function(index, item){
    $(item).attr("disabled", true);
});
于 2010-02-27T20:06:16.563 回答