JavaScript での並べ替えにはかなり奇妙な問題があります。私は、この驚くほど恐ろしく紛らわしい並べ替えの世界に迷い込んでしまいました。
基本的に、私は tabindex HTML 属性を模倣しようとしています。これは、基本的にページ内の「タブ移動」の順序を変更します: tabindex を持つ要素が最初で、最小の正の数が最初で、下に移動し、tabindex のない要素が最後になります。変わらない順番で。したがって、次のようになります。
tabindex=1、tabindex=2、tabindex=5、tabindex=5000、tabindex なし、tabindex なし、tabindex なしなど...
私はこれを機能させようとしています。Chrome では、他のすべての主要なブラウザーと比較して、使用する並べ替えアルゴリズムが原因で (少なくとも私はそう思います)、機能しません。
Chrome で返されるのは散発的で奇妙なもので、1 つの要素が完全に順不同で、他の要素が最下部ではなく上部に表示されます。
他のすべてのブラウザーでは、それは機能します (ただし、tabindex の要素が逆の順序になっていることを除きますが、これを機能させた後に修正することを計画していたのは非常に簡単です)。これは次のコードを使用しています。
selectElements.sort(function(a,b){
return b.getAttribute('tabindex')-a.getAttribute('tabindex');
});
問題は、getAttribute のない要素が null を返すという事実に起因する可能性があると思いますが、私は何を知っていますか... :P
これを機能させるために皆さんが何をするか教えてください...ありがとう!