jQuery Object 在 IE 中不支持属性或方法 trim()



jQuery trim方法怎么了??

jQuery('#Reminders').attr('value').trim()

对象不支持属性或方法"trim">

jQuery('#Reminders').attr('value')

"5,1,1">

$('#Reminders').attr('value').split(',')
[5,1,1]
[0]: "5"
[1]: "1"
[2]: "1"

我在FireFox或Chrome中没有这些问题。。。仅IE 9.0。trim((有什么特别之处吗。。。我没有收到备忘录。

IE没有string.trim()方法。

相反,您可以调用jQuery的$.trim(str)

您可以在String对象上添加trim((方法,适用于不支持该方法的浏览器(类似IE(。

只需在调用trim((方法之前添加这些行:

String.prototype.trim = function() {
    return this.replace(/^s+|s+$/g, '');
}

trim()不会像在jQuery上下文中那样被调用。

一旦调用attr(),jQuery链接就结束了。看见http://api.jquery.com/attr/

要做到这一点,请执行:

jQuery.trim(jQuery('#Reminders').attr('value'));

请参阅:http://api.jquery.com/jQuery.trim/

IE没有trim()方法也有同样的问题。如果trim()不存在,我就添加它来解决问题。

(function(str) {
    if (typeof(str.prototype.trim) === 'undefined') {
        str.prototype.trim = function() {
            return $.trim(this);
        };
    }
})(String);

效果很好。

这与jquery无关。Attr正在返回一个字符串。这意味着IE在字符串上并没有trim方法。

最新更新