似たようなことに取り組みました。これが私がそれをどのように扱ったかです:
チェックボックスとテキストボックスにクラスを追加し、IDのインデックスを文字列の最後に移動して(jqueryを簡単にします)、次のようになります。
これがフィドルリンクです
<table>
<tr>
<td><input class="checkboxa" type="checkbox" name="input1" id="checkboxa1"/> </td>
<td><input class="checkboxb" type="checkbox" id="checkboxb1" /></td>
<td> <input type="text" id="texbox1" /></td>
</tr>
<tr>
<td><input class="checkboxa" type="checkbox" name="input2" id="checkboxa2"/> </td>
<td><input class="checkboxb" type="checkbox" id="checkboxb2" /></td>
<td><input type="text" id="texbox2" /></td>
</tr>
</table>
このアプローチを使用すると、JQueryは、「最も近い」または「検索」でコントロールを検索しようとしてDOMを上下に移動する必要がなく、コントロールを直接ターゲットにすることができます。
$(function() {
$('.checkboxa').click(function() {
var index = $(this).attr('id').toString().substring(9);
$('#checkboxb' + index).attr('disabled', $('#checkboxa' + index)[0].checked);
$('#texbox' + index).prop('disabled', $('#checkboxa' + index)[0].checked);
});
});