How do I focus on the next textarea that comes after the button that was clicked?
http://jsfiddle.net/infatti/GmPCz/
$('.add').click(function(){
$(this).closest('div').next('textarea:visible').focus();
});
How do I focus on the next textarea that comes after the button that was clicked?
http://jsfiddle.net/infatti/GmPCz/
$('.add').click(function(){
$(this).closest('div').next('textarea:visible').focus();
});
closest()
从当前元素开始并在 DOM 中搜索与选择器匹配的第一个元素。您想要的 div 不是链接的祖先,而是兄弟姐妹。
$('.add').click(function(){
$(this).next('div').find('textarea:visible:first').focus();
});
尝试找到下一个div
并专注于第一个可用的textarea
。此外,请确保使用以下内容覆盖锚标记的默认行为preventDefault()
:
$('.add').click(function(event){
event.preventDefault();
$(this).next('div').find('textarea:visible').first().focus();
});
这应该这样做:
$(this).next().find('textarea').filter(':visible').first().focus();
出于性能原因,使用.filter(':visible')
和.first()
而不是将其包含在选择器中。它避免了执行额外的查询,因为它只是从初始单个查询中减少现有的结果集。