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

标签 javascript jquery dom

<分区>

许多 DOM 元素都是可聚焦的:带有 tabIndex 的 div、input 元素等。有没有比检查无数种不同情况更简单的方法来检查元素是否可聚焦?是否有用于此的 jQuery 方法?

最佳答案

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

  • <a><area>href
  • 任何未禁用的表单元素
  • 内嵌框架
  • 任何带有 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;
}

关于javascript - 如何检查dom元素是否可聚焦?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18261595/

相关文章:

javascript - 在 jQuery 中附加表单时出现问题

javascript - 使用动态 javascript 将 InnerHTML 放置在正确的位置

php - 如何使用dom php解析器

php - 如何使用javascript从循环中的字段获取信息

javascript - hover() 事件在我的例子中没有触发

javascript - 将 AngularJS RouteParams 与可变路由一起使用

javascript - jquery 执行函数列表

javascript - 为什么 DOMParser 不保留已解析 DOM 的内联样式?

javascript - DOMNodeInserted 在 IE 中的等效项?

javascript - JS : Change image name on hover