【问题标题】:jQuery .trim() IE Browser Compatibility QuestionjQuery .trim() IE 浏览器兼容性问题
【发布时间】:2011-07-13 16:42:18
【问题描述】:

我在 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>");
}

上面写着:

对象不支持该属性或方法并指向该行:

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

可能是什么问题?

【问题讨论】:

  • @Patrick: length 是一个属性,而不是一个函数。
  • @Chuck:您将标题更改为“jQuery .length IE 浏览器兼容性问题”,但这与 .length 无关——它与 .trim() 在 8 版之前的 IE 中不可用有关。跨度>
  • 好收获。我会将函数更改为 .trim(),但我试图将问题标题留在他最初提出问题的上下文中。

标签: javascript jquery internet-explorer cross-browser


【解决方案1】:

尝试改变:

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>");
}

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-11-05
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 1970-01-01
      • 2014-06-03
      • 2010-11-17
      • 2012-06-07
      • 2014-09-12
      相关资源
      最近更新 更多