2014-02-22 26 views
2

屬性的1或更高位值我有一種情況,我需要的,如果它有屬性的1或更高排序jQuery的元素,如果它有它在底部

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

值現在我jQuery的元素進行排序需要測試變量進行排序,如果有爲了

注意在數組或對象的屬性底部的1或更高的地方的tabindex:如果tabindex屬性爲0

爲什麼我需要這個不排序?

這將幫助我確定身體上的最後聚焦元素。

我知道這是有點棘手的問題,但我沒有看到任何其他方式找到最後focussable元素

+0

排序?所有這些元素都分散在你的頁面中,對吧? –

+0

是的,我只需要對值爲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"); 
}); 
+0

感謝它幫助排序。 –

0

我回答我自己,因爲這可能會幫助一些一需要

我所做的是我增加了一個變量分離的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'); 
    }); 
} 

最後所述主體的所述第一focussable元件將是TEST2 [0]和體最後focussable元件將TEST1 [test.length-1]

請適當條件

相關問題