jQuery从最近的选择按钮

时间:2014-04-03 15:12:24

标签: jquery

我有一张这样的表:

<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中的按钮?

2 个答案:

答案 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