我有一张这样的表:
<div id="somehting">
<table>
<tr>
<td>
<button id="example">...</button>
</td>
<td>
<input type="text" class="text"/>
</td>
</tr>
</table>
</div>
我想在输入字段中输入keydown事件时启用/禁用按钮。为此,我将以下监听器放入代码中:
$('#something').on('keydown', ".text", function(){
$(this).closest("td").find('#example').removeAttr('disabled');
});
但它不起作用。如何在输入字段的td之前选择td中的按钮?
答案 0 :(得分:4)
button
位于同一tr
而不是td
,因此您需要找到tr
元素的input
,然后找到{{} 1}}在里面
button
注意:如果你有一个ID,那么就不需要使用任何其他选择器,只需使用id选择器。但是,如果重复$(this).closest("tr").find('#example').removeAttr('disabled');
结构,那么您将拥有多个具有相同ID但无效的元素,因此请使用tr
的class属性而不是button
。
所以
id
然后
<button class="example">...</button>
答案 1 :(得分:0)
首先,您在文本框keydown的事件委派中使用了错误的父选择器。您有div somehting
,如果您使用something
,请尝试使用:
$('#somehting').on('keydown', ".text", function(){
$(this).closest("#somehting").find('#example').removeAttr('disabled');
});
<强> Working Demo 强>