【问题标题】:JavaScript split function not working in IEJavaScript 拆分功能在 IE 中不起作用
【发布时间】:2011-06-21 08:25:10
【问题描述】:

我在 JavaScript 中使用 split 函数。它在 Firefox 和 Chrome 中运行良好,但是当我调用 split 函数时 IE 显示错误。有没有办法使用拆分等其他功能?

【问题讨论】:

  • 需要查看您的代码以及您遇到的错误是什么?
  • 它确实支持,它可能在您的代码中的其他内容上失败。发布您的代码,我们会看到。
  • 我们会尽快回复您的代码。请在粘贴后选择您的代码,然后单击带有 {} 的按钮
  • 您测试的是哪个版本的 IE? (这很重要,因为在旧版本的 IE 中split() 存在错误)
  • @mplungjan - 在一些旧版本的 IE 中,如果你拆分一个字符串并且它有相邻的分隔符,它不会返回空元素。例如"x||y".split('|') 给出的数组只有两个结果“x”和“y”,而不是三个。我相信是 IE6 做到了这一点。我没有 IE6 的副本来验证这一点,但我记得几年前它给我带来了巨大的问题,直到我发现了这个错误。

标签: javascript internet-explorer


【解决方案1】:

split Method

IE8完全支持

split method for JScript 5.6

IE6也完全支持

Live example 使用.split(/\s+/)

在 IE9 标准、IE9 IE8 模式、IE9 IE7 模式和 IE9 quirks 模式下测试。所有工作。

编辑:

原来你的实际问题是使用.textContent。这在 IE 中不起作用。有两种选择。

特征检测:

var str;
if (el.textContent) {
  str = el.textContent;
} else {
  str = el.innerText;
}

.nodeValue:

var str = el.nodeValue;

【讨论】:

  • 我了解我的问题,我使用该代码 textContent.split(/\s+/);所以 textcontent 在 ff 和 crome 中工作,但在 ie 中不工作。解决方案是使用在 ff 中不起作用的内部文本,所以还有其他解决方案
  • @VbPatel 是的 .textContent 不受支持。使用.nodeValue
【解决方案2】:

当您拆分数字而不是字符串时,Javascript 会抛出 - 对象不支持此属性。

确保您在 var 中有一个字符串值。

【讨论】:

    【解决方案3】:

    #9 以下的 IE 与大多数其他浏览器在处理字符串拆分时至少有一个区别-

    var s='在某些浏览器中,您可以在带括号的分隔符上“拆分”字符串并返回数组中的“拆分”位。';

    s.split(/( ?['"] ?)/).join('\n')
    
    /***************************************************/
    Firefox 4.0.1>>
     In some browsers, you can
     "
    split
    " 
    a  string on a parenthized delimeter and return the
     "
    split-off
    " 
    bits in the array.
    /***************************************************/    
    MSIE 8.0>>
     In some browsers, you can
    split
    a  string on a parenthized delimeter and return the
    split-off
    bits in the array.
    /***************************************************/    
    MSIE 9.0>>
     In some browsers, you can
     "
    split
    " 
    a  string on a parenthized delimeter and return the
     "
    split-off
    " 
    bits in the array.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      • 2018-09-24
      相关资源
      最近更新 更多