如何检查dom元素是否可聚焦?

时间:2013-08-15 20:51:03

标签: javascript jquery dom

许多DOM元素是可聚焦的:带有tabIndex,输入元素等的div。有没有简单的方法来检查元素是否可以聚焦而不是检查大量不同的情况?有没有一个jQuery方法呢?

1 个答案:

答案 0 :(得分:6)

从这里回答“翻译”:Which HTML elements can receive focus?

  • <a><area> href
  • 任何未禁用的表单元素
  • I帧
  • tabindex
  • 的所有元素

另外,我认为隐藏的元素也无法得到关注。

假设条件,以下函数可以帮助你(假设它总是会收到一个jQuery元素):

function canFocus( $el ) {
    if ( $el.is( ":hidden" ) || $el.is( ":disabled" ) ) {
        return false;
    }

    var tabIndex = +$el.attr( "tabindex" );
    tabIndex = isNaN( tabIndex ) ? -1 : tabIndex;
    return $el.is( ":input, a[href], area[href], iframe" ) || tabIndex > -1;
}