Jquery 设置此行输入的属性
我有一张三排的桌子Jquery 设置此行输入的属性,jquery,Jquery,我有一张三排的桌子 <table id="table1"> <tr> <td><input type="text" disabled="disabled" value="200"/></td> <td><input type="text" disabled="disabled" value="300"/></td> <td><input type="checkbox"/&g
<table id="table1">
<tr>
<td><input type="text" disabled="disabled" value="200"/></td>
<td><input type="text" disabled="disabled" value="300"/></td>
<td><input type="checkbox"/></td>
<tr>
<tr>
<td><input type="text" disabled="disabled" value="400"/></td>
<td><input type="text" disabled="disabled" value="600"/></td>
<td><input type="checkbox"/></td>
<tr>
</table>
现场演示:
我在演示中使用了无线电框,因为不能同时选中这两个框。您可以查看对所有复选框的更改,这些更改将在选择和取消选择时触发。如果选择,我们可以将
disabled
属性设置为空字符串以“启用”,如果取消选择以“disabled”重新禁用输入:
$('#table1 :checkbox').change(function() {
$(this).closest('tr').find('input[type="text"]').attr('disabled',
this.checked ? '' : 'disabled'
);
});
演示:父节点(“:input[type='text'])
表示“如果父节点是类型为text
的输入元素,请将其交给我。这显然不是您想要的!您需要使用查找
:
$("#table1 :checkbox").click(function(){
$(this)
.closest('tr') // find the parent row
.find(":input[type='text']") // find text elements in that row
.attr('disabled',false) // enable them
.end() // go back to the row
.siblings() // get its siblings
.find(":input[type='text']") // find text elements in those rows
.attr('disabled',true); // disable them
});
感谢您的解释非常容易理解,感谢您的帮助,感谢您和所有其他回答者的帮助,虽然有点晚了,但这段代码对我来说行为不稳定-行被禁用,并且不适当地启用(尝试了JQuery 1.4和1.6)我也遇到过类似的情况,并且能够让它满足我的需要。感谢您的提示,请注意,对于JQuery 1.6或更高版本,您需要将.attr更改为.prop。
$('#table1 :checkbox').change(function() {
$(this).closest('tr').find('input[type="text"]').attr('disabled',
this.checked ? '' : 'disabled'
);
});
$("#table1 :checkbox").click(function(){
$(this)
.closest('tr') // find the parent row
.find(":input[type='text']") // find text elements in that row
.attr('disabled',false) // enable them
.end() // go back to the row
.siblings() // get its siblings
.find(":input[type='text']") // find text elements in those rows
.attr('disabled',true); // disable them
});