news 2026/7/19 11:19:26

jQuery UI API 类别 - 选择器(Selectors)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
jQuery UI API 类别 - 选择器(Selectors)

jQuery UI API 类别 - 选择器(Selectors)

Selectors是 jQuery UI API 中的一个独立类别,它扩展了 jQuery 的选择器功能,主要用于无障碍访问(Accessibility)场景,帮助开发者精确选中那些可以获得焦点或通过 Tab 键导航的元素。这些选择器属于 jQuery UI 的UI Core部分,内部实现考虑了跨浏览器兼容性和复杂规则(如 tabindex、disabled、visibility 等)。

官方文档地址:https://api.jqueryui.com/category/selectors/(适用于最新版本 1.14.1)

Selectors 类别包含的选择器

jQuery UI 提供了以下 4 个自定义选择器(以冒号:开头):

选择器描述关键规则与区别示例代码
:focusable选中所有可以获得焦点的元素(包括程序化焦点,如 tabindex=“-1”)。- 原生可焦点元素:input、select、textarea、button、object(未 disabled)。
- a/area:有 href 或 tabindex。
- 其他元素:有 tabindex(包括负值)。
- 元素必须可见。
$(":focusable").css("outline", "2px solid red");
:tabbable选中所有可以通过 Tab 键导航的元素(严格子集,不包括 tabindex=“-1”)。- 与 :focusable 类似,但 tabindex 必须 ≥0,且未 disabled。
- 注意:tabindex=“-1” 的元素是 :focusable 但不是 :tabbable。
$(":tabbable").addClass("tabbable-highlight");
:data(key)选中所有通过.data(key, value)存储了指定键数据的元素。- key:数据键名。
- 等价于有 jQuery data 的元素。
$(":data(myKey)").css("background", "yellow");
:data()(无参数)选中所有存储了任意 jQuery data 的元素。- 用于快速查找有 data 的元素。$(":data()").length; // 返回数量
为什么需要这些选择器?
  • 无障碍支持:标准 CSS 或 jQuery 选择器(如:focus)无法准确处理所有可焦点元素(尤其是 tabindex 和跨浏览器差异)。
  • 键盘导航:Dialog、Menu、Tabs 等小部件内部大量使用:tabbable来管理焦点陷阱(focus trapping)。
  • 数据管理:data()选择器方便操作 jQuery 存储的内部数据(如 Widget 实例)。
示例:高亮所有可 Tab 元素
$(function(){// 高亮所有可以通过 Tab 键访问的元素$(":tabbable").css({"outline":"2px dotted green","outline-offset":"2px"});// 高亮所有可焦点元素(包括 tabindex="-1")$(":focusable").css("box-shadow","0 0 5px blue");});
注意事项
  • 这些选择器依赖 jQuery UI的核心文件(jquery-ui.js),不引入 jQuery UI 时不可用。
  • 元素必须可见(display ≠ none,visibility ≠ hidden,且 opacity > 0)。
  • 项目已进入维护模式(最新 1.14.1),这些选择器稳定可靠,常用于键盘交互和 ARIA 无障碍开发。

如果您想了解某个选择器(如 :tabbable)的详细实现规则、完整代码示例,或在 Dialog 中的实际应用,请告诉我!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/18 12:54:32

华为网络设备基本配置命令

1、恢复出出厂设置<Huawei>reset saved-configuration This will delete the configuration in the flash memory.The device configuratio ns will be erased to reconfigure.Are you sure? (y/n)[n]:yClear the configuration in the device successfully. <Huawe…

作者头像 李华
网站建设 2026/7/18 9:42:03

志同道合交友网站毕业论文+PPT(附源代码+演示视频)

文章目录志同道合交友网站一、项目简介&#xff08;源代码在文末&#xff09;1.运行视频2.&#x1f680; 项目技术栈3.✅ 环境要求说明4.包含的文件列表&#xff08;含论文&#xff09;数据库结构与测试用例系统功能结构后台运行截图项目部署源码下载志同道合交友网站 如需其他…

作者头像 李华
网站建设 2026/7/18 14:52:41

【Java 25 LTS六大核心特性】

Java 25 LTS 深度拆解&#xff1a;改变开发范式的六大核心特性 基本类型模式匹配&#xff08;JEP 507&#xff09; 模式匹配简化了类型检查和转换&#xff0c;减少冗余代码。例如&#xff1a; if (obj instanceof String s) { System.out.println(s.toLowerCase()); } 基…

作者头像 李华
网站建设 2026/7/19 1:06:56

Langchain-Chatchat助力医疗文档智能检索与问答

Langchain-Chatchat助力医疗文档智能检索与问答 在一家三甲医院的早交班会议上&#xff0c;一位年轻医生急切地翻找《KDIGO慢性肾病临床实践指南》第47页的内容——关于三期患者使用ACEI类药物的禁忌证。他花了七分钟才从PDF目录中定位到相关章节。而就在同一时刻&#xff0c;…

作者头像 李华
网站建设 2026/7/17 7:10:46

Langchain-Chatchat如何实现文档相似度比对?查重与去重依据

Langchain-Chatchat 如何实现文档相似度比对&#xff1f;查重与去重依据 在企业知识库日益膨胀的今天&#xff0c;一个看似简单却影响深远的问题浮出水面&#xff1a;为什么我上传了十份几乎一模一样的项目报告&#xff0c;系统还在一遍遍地索引、存储、检索&#xff1f; 这不仅…

作者头像 李华
网站建设 2026/7/18 6:51:05

java学习--String和StringBuffer互转

在 Java 中&#xff0c;String 是不可变字符串&#xff0c;StringBuffer 是可变字符串&#xff08;线程安全&#xff09;&#xff0c;两者的相互转换是开发中常见操作&#xff0c;以下是具体实现方式、示例及注意事项&#xff1a;一、String 转 StringBuffer有两种核心方式&…

作者头像 李华