如何使用jQuery获取下一行的第一个td元素?
解决方案
你的问题出在跳转下一行时的选择器逻辑上,原代码直接用find(".skill-input")会匹配该行所有输入框,导致意外跳到最后一个。只需修改下一行的选择规则,明确指定选中下一行第一个td里的输入框即可。
修改后的jQuery代码:
// 缓存当前输入框所在的td,减少重复DOM查询 var $currentTd = $(this).closest('td'); // 尝试获取下一个兄弟td内的输入框 var $nextTdInput = $currentTd.next().find(".skill-input"); if ($nextTdInput.length) { $nextTdInput.focus(); return; } // 当前td是本行最后一个时,定位到下一行第一个td的输入框 var $nextRowFirstInput = $currentTd.closest('tr').next().find('td:first .skill-input'); if ($nextRowFirstInput.length) { $nextRowFirstInput.focus(); }
关键调整说明:
- 用
td:first明确限定下一行的第一个单元格,确保跳转目标准确; - 所有判断都通过
length检查元素是否存在,避免jQuery空对象导致的逻辑误判; - 缓存DOM元素,减少重复查询操作,提升代码性能。
内容的提问来源于stack exchange,提问作者D74
相关产品推荐
相关产品推荐

