1

JavaScriptプラグインの1つにソート機能があり、コードは次のようになります。

groups = groups.sort(function (a, b) {
    a = a.content.toString().toLowerCase().replace(/\s+/g, '');
    b = b.content.toString().toLowerCase().replace(/\s+/g, '');
if(a > b){ //stops and gives error here
return 1;
}
if(a < b){
return -1;
}
return 0;
});

a.contentは実際には文字列そのものです (ただし、IE のために.toString()、コードにも追加しました。
他のすべてのブラウザーでは、上記のコードはすべてのブラウザーで正常に動作しますが、IE 8 では、上記のコードは JavaScript エラーを示して停止します)上記のコードに示されている行. コンソールは、この行に「Number expected」というメッセージを表示します.

(場合によってはa.content、この形式の html も含まれる場合があります ->
"<span>Sample String</span>".
IE8 でエラーが発生するかどうかはわかりませんが、問題はこのブラウザーでのみ発生します)
このエラーを取り除くにはどうすればよいですか?

4

2 に答える 2

0

IE が空白を追加したとき、IE に問題があったことを覚えています... トリミングしてみてください。

それとも... .localeCompare を使用して文字列を比較しようとしましたか?

alert('a'.localeCompare('b'));
alert('a'.localeCompare('a'));
alert('b'.localeCompare('a'));
于 2013-03-16T09:57:25.403 に答える