按钮后直接关注下一个表单元素

时间:2013-09-24 17:25:36

标签: javascript jquery

如何关注点击按钮后的下一个textarea?

http://jsfiddle.net/infatti/GmPCz/

$('.add').click(function(){
  $(this).closest('div').next('textarea:visible').focus();
});

3 个答案:

答案 0 :(得分:2)

closest()从当前元素开始,在DOM中搜索与选择器匹配的第一个元素。你想要的div不是链接的祖先,而是兄弟姐妹。

http://jsfiddle.net/8TVxd/

$('.add').click(function(){
    $(this).next('div').find('textarea:visible:first').focus();
});

答案 1 :(得分:1)

尝试找到下一个div并关注第一个textarea。此外,请确保使用preventDefault()覆盖锚标记的默认行为:

$('.add').click(function(event){
  event.preventDefault();
  $(this).next('div').find('textarea:visible').first().focus();
});

JSFiddle

答案 2 :(得分:0)

这应该这样做:

$(this).next().find('textarea').filter(':visible').first().focus();

jsFiddle updated

使用.filter(':visible').first()而不是将其包含在选择器中是出于性能原因。它避免了必须执行其他查询,因为它只是削减了初始单个查询中的现有结果集。

Example explanation of the performance difference

相关问题