确定哪个元素是第一个并执行此操作
Determine which element is first and do this
我需要将焦点设置在".focus"的第一个表单元素或类上;以可见或第一个为准。
这似乎没有对每个进行排序以确定哪个先来?
http://jsfiddle.net/infatti/tdvHJ/1/
$('.focus:visible:first, body:not(:has(.focus:visible)) input:visible:first, body:not(:has(.focus:visible)) textarea:visible:first').focus();
这将找到所有可见的输入元素、textarea 元素和 .focus 元素:
$('input:visible, .focus:visible, textarea:visible')
它还将根据它们在 DOM 中的顺序对它们进行排序,因此文档中的第一个元素将是 jQuery 对象中的第一个。要访问第一个:
$('input:visible, .focus:visible, textarea:visible').eq(0);
并专注于它:
$('input:visible, .focus:visible, textarea:visible').eq(0).focus();
请注意,正如我刚刚发现的,如果元素占用文档中的空间,jQuery 认为它们是"可见的"。因此,具有visibility:hidden
或opacity:0
的元素仍将被视为可见:
http://api.jquery.com/visible-selector/
像这样吗?
$('.focus:visible:first, body:not(:has(.focus:visible)) input:visible:first, body:not(:has(.focus:visible)) textarea:visible:first').eq(0).focus();
小提琴:http://jsfiddle.net/infatti/tdvHJ/1/
Eq(0) 选择第一个元素... ;)
尝试:
$('.focus:visible:first').filter(":input").focus();
js小提琴示例
我不确定您要实现的目标,因为没有任何元素与类焦点。 只需将类焦点添加到您的输入元素,然后我们
$('.focus').focus();
相关文章:
- 单击元素两次后执行操作
- 如何在mvc3中执行操作而不更改当前页面
- jQuery onunload在按下按钮时执行操作
- 如果DOM发生更改,您将如何执行操作
- 在执行所有回调函数后执行操作
- JavaScript 对输入框执行操作
- 如何根据各种复选框状态执行操作
- 对页面重新加载 Jquery 执行操作
- jQuery如果大于则执行操作,但只执行一次
- ngStorage是否异步执行操作
- 如何逐一执行操作
- 只有当输入文本是example.com这样的域时才执行操作
- Javascript数学不起作用,更好的方式来执行操作
- Qubit在控制台中执行操作
- 停止setInterval,直到未执行操作
- 我如何使用javascript对音频标记执行操作
- JS 函数将对象作为输入,并返回一个对象,该对象对作为参数传递的对象执行操作
- 单击时执行操作多个具有相同类的 href
- 在 JavaScript 中传递指定秒数后如何执行操作
- 如何在对用户控件执行操作后调用 Web 服务