jquery - 使用 aria-selected=true 识别选项卡并在 jquery 中更改选项卡背景颜色

标签 jquery css tabs wai-aria

我们有一个词汇表页面,可让您从一百多个不同的选项卡中选择不同的词汇表术语,定义将显示在定义 div 标签中,具体取决于您选择的选项卡。这一切都很好,但选项卡本身没有标识符让您知道您在哪个术语上。我想要做的是让选项卡的背景颜色根据当前显示的定义术语更改颜色。

在下面的示例中,我能想到的唯一方法是为 <li> 制作背景色。标签更改颜色是通过 aria-selected="true" 进行的标签。在 jquery 中遍历所有选项卡并查找 aria-selected="true" 的最佳方法是什么?然后将“事件”类添加到 <li>仅更改该选项卡的背景颜色?然后如果是 aria-selected="false"显然 removeClass “active”。

是的,可以有多个aria-selected="true"在页面上,因为有不同的组,每个组都有自己的div显示窗口,由id标签分隔。

<ul>
<li class="tab-item tab_id_01a active" role="none"><a href="#id_01a" id="label_id_01a" class="tab-link" role="menuitem" aria-selected="true">Tab Link 1</a></li>
<li class="tab-item tab_id_02a" role="none"><a href="#id_02a" id="label_id_02a" class="tab-link" role="menuitem" aria-selected="false">Tab Link 2</a></li>
<li class="tab-item tab_id_03a" role="none"><a href="#id_03a" id="label_id_03a" class="tab-link" role="menuitem" aria-selected="false">Tab Link 3</a></li>
<li etc.
</ul>

在此先感谢您的帮助。

最佳答案

尝试

$("ul li a").each(function () {
           if ($(this).attr("aria-selected") === "true") {
                $(this).parent().addClass('active')
            } else {
                $(this).parent().removeClass('active')

            }
        });

关于jquery - 使用 aria-selected=true 识别选项卡并在 jquery 中更改选项卡背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50397569/

相关文章:

javascript - jQuery fadeIn() 和 fadeOut() 的正确使用方法是什么?

html - 如何在不将其兄弟移动到下一行的情况下将文本框设置为 100% 宽度?

android - 自定义 TabWidget Android 选项卡指示器

R Shiny : How to add data tables to dynamically created tabs

javascript - 使用变量作为数组名称

javascript - 在绝对定位的 div 下的 div 上悬停事件

javascript - 气泡图 : how to avoid bubbles being cut off? 谷歌可视化

css - 尝试将图像对齐到 Bootstrap 中列的右中间

c# - CSS 显示模板类名中的额外空间

javascript - 响应式侧边栏选项卡和点击事件切换