【问题标题】:using jquery trim in IE在 IE 中使用 jquery trim
【发布时间】:2012-05-21 13:33:55
【问题描述】:

我最近在使用 tablesorter.js 时遇到了问题,我无法按日期排序,因为空格破坏了我的脚本 (tablesorter, wont sort by date correctly)

我终于想通了,把代码改成下面这样

$.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

【问题讨论】:

  • 我刚刚注意到它在 IE8 或 IE7 中不起作用 什么不起作用?什么错误?
  • 对不起,ManseUK,我没有解释得太清楚。我最初的问题是我无法按日期排序(dd mmm yyyy),但事实证明是空格导致我的脚本中断。我现在已经使用 $.trim 删除了空格,并且脚本似乎运行完美——允许我按日期排序——但由于某种原因,它在 IE8/7 中仍然中断。虽然在 IE9 中运行良好....
  • 明白这一点....但它是如何工作的?你得到什么错误?空格被删除了吗?
  • @Gillian 只是一个猜测......但这条线 return sortableDate = '' + year + month + day; 在 jslint 上无效 - 尝试将其更改为 return '' + year + month + day; 并在 IE8/7 中运行它

标签: jquery internet-explorer tablesorter trim


【解决方案1】:

我可能错了,但我认为您没有正确替换空白

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

【讨论】:

  • 不幸的是,在 IE8/7 中似乎没有什么不同。不过谢谢:)。也许我应该尝试一些不同的方法来删除空格。
【解决方案2】:

感谢您昨天与我一起解决此问题,非常感谢。

我现在有这个工作。

我遇到的问题是如果表格包含任何空格,tablesorter 将无法工作,我的解决方案是使用 $.trim 删除它,但我不知道(直到昨天)$.trim 在 IE8/7/ 中不起作用6.

我没有找到 $.trim 的替代品来使这项工作在 IE8/7/6 中工作 - 尽管以下帖子可能有用

.trim() in JavaScript not working in IE

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

然而,我确实注意到在其中一个 xsl 文件中存在以下代码 #160;这导致了所有问题。在向开发人员询问这条线之后,似乎添加了这条线是为了防止 8 年前出现在浏览器中的布局问题。不用说,我现在已经在我的解析器中删除了它和 $.trim 行,它在所有浏览器中都可以正常工作。呼……

【讨论】:

    猜你喜欢
    • 2011-01-19
    • 2011-07-13
    • 2011-05-08
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 2019-04-21
    相关资源
    最近更新 更多