jQuery .trim()IE浏览器兼容性问题

时间:2011-03-11 18:05:37

标签: javascript jquery internet-explorer cross-browser

我在FF,OP,Chrome,Safari和IE中测试了以下内容。除了我测试的3个IE之外,它在它们中都有效:8,7和6。

// truncate testimonial 
var visiblePara = $('div.bannerUnder p.show');
if (visiblePara.text().trim().length > 150) {
    var text = visiblePara.text().trim();
    var author = $('div.bannerUnder p.show > strong').text();
    text = text.substr(0, 150) + "...";
    visiblePara.text(text).append("<strong>" + author + "</strong>");
}

它说:

Object不支持此属性或方法,并指向此行:

if (visiblePara.text().trim().length > 150) {

可能是什么问题?

2 个答案:

答案 0 :(得分:19)

尝试更改:

visiblePara.text().trim().length

为:

$.trim(visiblePara.text()).length

你甚至可以向上移动文本变量,如下所示:

// truncate testimonial 
var visiblePara = $('div.bannerUnder p.show');
var text = $.trim(visiblePara.text());
if (text.length > 150) {
    var author = $('div.bannerUnder p.show > strong').text();
    text = text.substr(0, 150) + "...";
    visiblePara.text(text).append("<strong>" + author + "</strong>");
}

答案 1 :(得分:4)

trim在IE 8之前不是String.prototype的方法。它已经在其他浏览器中存在了一段时间。

我在IE8中尝试过,它对我有用。使用jQuery.trim() jQuery.trim(str) 代替