Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何重新排序页面中间的两个元素的选项卡顺序?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何重新排序页面中间的两个元素的选项卡顺序?

Javascript 如何重新排序页面中间的两个元素的选项卡顺序?,javascript,jquery,html,Javascript,Jquery,Html,我有一个动态网页,我需要对内容中某个位置的两个元素的选项卡顺序进行重新排序。我真的不想为前面的每个元素设置选项卡索引来实现这一点。是否可以相对于元素在DOM中的位置为其分配制表符索引,从而保持其余元素的自然制表符顺序 给出以下要素: <a>Link1</a> <a>Link2</a> <a>Link3</a> <a>Link4</a> <a>Link5</a> Link1 链

我有一个动态网页,我需要对内容中某个位置的两个元素的选项卡顺序进行重新排序。我真的不想为前面的每个元素设置选项卡索引来实现这一点。是否可以相对于元素在DOM中的位置为其分配制表符索引,从而保持其余元素的自然制表符顺序

给出以下要素:

<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>