Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 设置此行输入的属性_Jquery - Fatal编程技术网

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
});