0

最近、tablesorter.js で問題が発生しました。空白がスクリプトを壊していたため、日付で並べ替えることができませんでした ( tablesorter、日付で正しく並べ替えられません) 。

私は最終的にこれを理解し、コードを次のように変更しました

$.tablesorter.addParser({
    id: 'dayMonthYear',
    is: function (s) {
        return false;
    },
    format: function (s) {
        s = $.trim(s.replace(/\s+/g, ' '));
        var date = s.match(/^(\d{1,2})[ ](\w{3})[ ](\d{4})$/);
        var day = String(date[1]);
        if (day.length == 1) {
            day = "0" + day;
        }
        var month = monthNames[date[2]];
        var year = date[3];
        return sortableDate = '' + year + month + day;
    },
    type: 'numeric'
});
var monthNames = {};
monthNames["Jan"] = "01";
monthNames["Feb"] = "02";
monthNames["Mar"] = "03";
monthNames["Apr"] = "04";
monthNames["May"] = "05";
monthNames["Jun"] = "06";
monthNames["Jul"] = "07";
monthNames["Aug"] = "08";
monthNames["Sep"] = "09";
monthNames["Oct"] = "10";
monthNames["Nov"] = "11";
monthNames["Dec"] = "12";

これでうまくいくように見えましたが、IE8 または IE7 では機能しないことに気付きました。IE9では問題ないようです。

古いバージョンの IE には問題があり$.trimますか? もしそうなら、回避策はありますか?

ありがとう


編集:私は答えに近づいていると思います、これを見つけましたhttp://www.javascripter.net/faq/trim.htm

4

2 に答える 2

0

昨日はトラブルシューティングをしていただき、本当にありがとうございました。

私は今、これが機能しています。

私が抱えていた問題は、テーブルに空白が含まれているとテーブルソーターが機能しないことでした.私の解決策は $.trim を使用してこれを削除することでしたが、昨日までは不明でした.$.trim は IE8/7/6 では機能しません.

IE8/7/6 でこれを機能させるための $.trim に代わるものは見つかりませんでしたが、次の投稿が役に立つかもしれません

JavaScript の .trim() が IE で機能しない

http://www.javascripter.net/faq/trim.htm

ただし、xsl ファイルの 1 つに次のコードが存在することに気付きました #160; それがすべての問題を引き起こしていました。そして、この行について開発者に質問したところ、これは 8 年以上前にブラウザーで発生したレイアウトの問題を防ぐために追加されたようです。言うまでもなく、パーサーでそれと $.trim 行を削除したところ、すべてのブラウザーで正常に機能しています。ふぅ……

于 2012-05-22T09:30:42.727 に答える
0

私は間違っているかもしれませんが、空白を適切に置き換えていないと思います

s = $.trim(s.replace(/\s+/g, ' '));

コードでは、空白が削除されていないことがわかります。

試す

s = $.trim(s.replace(/\s+/g, ''));

また、要点として、単語$.trimの前後の空白を削除することによって、単語内の空白を削除することはできません。

ex :-

var trimmed_text = $.trim('hello world '); 


$.trim  will only remove the space after **world**

したがって、変数trimmed_text「hello world」になりました

アップデート

このコードを試してください

s.replace(/ /g,'');
于 2012-05-21T13:48:08.467 に答える