Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 如果Jquery元素的属性值为1或更高,则对其进行排序,并将其放在底部_Javascript_Jquery - Fatal编程技术网

Javascript 如果Jquery元素的属性值为1或更高,则对其进行排序,并将其放在底部

Javascript 如果Jquery元素的属性值为1或更高,则对其进行排序,并将其放在底部,javascript,jquery,Javascript,Jquery,我有一个场景,如果jquery的属性值为1或更高,我需要对它进行排序 selectors = "a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]"; var test = $("body").find(s

我有一个场景,如果jquery的属性值为1或更高,我需要对它进行排序

selectors = "a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]";
var test = $("body").find(selectors);
现在我需要对测试变量进行排序,如果它的属性tabindex为1或更高,并按顺序放置在数组或对象的底部

注意:如果tabindex为0,则不进行排序

为什么我需要这个

这将帮助我确定身体中最后一个可聚焦的元素

我知道这是一个有点棘手的问题,但我看不到任何其他方法来找到最后一个可聚焦元素

selectors = "a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]";
var test = $("body").find(selectors);
test.sort(function(a,b) {
   // Replace b and a below if you wan't descending order
   return $(b).attr("tabindex") < $(a).attr("tabindex");
});
selectors=“a[href],area[href],输入:不([disabled]),选择:不([disabled]),文本区域:不([disabled]),按钮:不([disabled]),iframe,object,embed,*[tabindex],*[contenteditable]”;
var test=$(“body”).find(选择器);
测试.排序(函数(a,b){
//如果您不想按降序排列,请替换下面的b和a
返回$(b).attr(“tabindex”)<$(a).attr(“tabindex”);
});

我自己回答,因为这可能会帮助一些需要帮助的人

我所做的是添加了一个分隔tabindex 0的变量

selectors = "a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex=0], *[contenteditable]",
higherselectors = "*[tabindex]:not([tabindex=0]):not([tabindex=-1])";
var test1 = $("body").find(selectors);
var test2 = $("body").find(higherselectors);
if(test2.length) {
  test2.toArray().sort(function(a, b) {
        return $(a).attr('tabindex') < $(b).attr('tabindex');
  });
}
selectors=“a[href],area[href],输入:不([disabled]),选择:不([disabled]),文本区域:不([disabled]),按钮:不([disabled]),iframe,object,embed,*[tabindex=0],*[contenteditable],
高级选民=“*[tabindex]:非([tabindex=0]):非([tabindex=-1])”;
var test1=$(“body”).find(选择器);
var test2=$(“主体”).find(高级选民);
if(test2.长度){
test2.toArray().sort(函数(a,b){
返回$(a).attr('tabindex')<$(b).attr('tabindex');
});
}
最后,主体的第一个可聚焦元素将是test2[0],主体的最后一个可聚焦元素将是test1[test.length-1]


请检查适当的条件

排序?所有这些元素都分散在您的页面上,对吗?是的,我只需要对值为1或更高的tabindex元素进行排序,并将剩余的元素保留在相同的位置,感谢它帮助排序。