Javascript 如何重新排序页面中间的两个元素的选项卡顺序?
我有一个动态网页,我需要对内容中某个位置的两个元素的选项卡顺序进行重新排序。我真的不想为前面的每个元素设置选项卡索引来实现这一点。是否可以相对于元素在DOM中的位置为其分配制表符索引,从而保持其余元素的自然制表符顺序 给出以下要素:Javascript 如何重新排序页面中间的两个元素的选项卡顺序?,javascript,jquery,html,Javascript,Jquery,Html,我有一个动态网页,我需要对内容中某个位置的两个元素的选项卡顺序进行重新排序。我真的不想为前面的每个元素设置选项卡索引来实现这一点。是否可以相对于元素在DOM中的位置为其分配制表符索引,从而保持其余元素的自然制表符顺序 给出以下要素: <a>Link1</a> <a>Link2</a> <a>Link3</a> <a>Link4</a> <a>Link5</a> Link1 链
<a>Link1</a>
<a>Link2</a>
<a>Link3</a>
<a>Link4</a>
<a>Link5</a>
Link1
链接2
链接3
链接4
链接5
这里的自然选项卡顺序是链接1、2、3、4、5。是否可以将选项卡顺序更改为1、2、3、5、4,而不同时为1、2和3设置选项卡索引
在实际上下文中,我需要按照展开菜单重新排列两个元素,因此我不知道选项卡索引的数值
基于javascript/jquery的解决方案也很受欢迎。如果不更改tabindex堆栈,就无法解决这个问题。不过,您可以非常轻松地编写一个小插件,将其聚焦并更改为其他内容。不过它很乱,我强烈建议不要这样做 然而,您可以做的是在上面和下面有一个tabindex堆栈。假设DOM中这些项上面的所有对象都可以有tabindex 10,下面的所有对象都可以有tabindex 30 对于要列出的项目,可以强制选项卡索引介于20和29之间。像这样: 超过:
您的范围:
<a tabindex="20">Link1</a>
<a tabindex="20">Link2</a>
<a tabindex="20">Link3</a>
<a tabindex="20">Link4</a>
<a tabindex="20">Link5</a>
Link1
链接2
链接3
链接4
链接5
根据:
<domobject tabindex="30"/>
<domobject tabindex="30"/>
<domobject tabindex="30"/>
<domobject tabindex="30"/>
这将迫使选项卡按正确的顺序遍历DOM。然而,如果您在此过程中包含未绑定的对象,它们将获得与第一个块相同的选项卡索引-使一切都变得奇怪
如果要切换范围的制表符索引,可以在现有的“缓冲区范围”(示例中为20-29)内相应地更改它:
Link1
链接2
链接3
链接4
链接5
真是一团糟
jQuery选项也很混乱,但它更干净(更易于维护)。这个问题缺乏必要的细节。我添加了一个示例并试图澄清。我希望有帮助:)
<domobject tabindex="30"/>
<domobject tabindex="30"/>
<domobject tabindex="30"/>
<domobject tabindex="30"/>
<a tabindex="25">Link1</a>
<a tabindex="24">Link2</a>
<a tabindex="23">Link3</a>
<a tabindex="22">Link4</a>
<a tabindex="21">Link5</a>