Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript lastIndexOf在Internet Explorer中不起作用_Javascript - Fatal编程技术网

Javascript lastIndexOf在Internet Explorer中不起作用

Javascript lastIndexOf在Internet Explorer中不起作用,javascript,Javascript,我有以下代码: var currentServerlist = []; var newServerIp = document.getElementById('add_server').value; if( CurrentServerIP != newServerIp ) { $('#failoverServers td.row_selector').each(function() {

我有以下代码:

        var currentServerlist = [];
        var newServerIp = document.getElementById('add_server').value; 
        if( CurrentServerIP != newServerIp )
        {
            $('#failoverServers td.row_selector').each(function() {
            var row = $(this).closest('tr');
            var serverIp = row.find('td[rel=ip]').text();
            currentServerlist.push(serverIp);   
            });

            if(currentServerlist.lastIndexOf(newServerIp) != -1)
            {
                return true;
            }
            return false;
         }
但我发现lastIndexOf在InternetExplorer中不起作用(它在Chrome中起作用)

如何修复此问题?

根据,除IE8及以下版本外,所有浏览器都支持,
Array.prototype.lastIndexOf

如果您需要支持此类浏览器,可以使用可用的各种浏览器之一(或a)。

某些浏览器(IE)不支持很多JavaScript属性。我通常会在mdn上找到解决方案:

那里的代码是:

if (!Array.prototype.lastIndexOf)
{
  Array.prototype.lastIndexOf = function(searchElement /*, fromIndex*/)
  {
    "use strict";

    if (this == null)
      throw new TypeError();

    var t = Object(this);
    var len = t.length >>> 0;
    if (len === 0)
      return -1;

    var n = len;
    if (arguments.length > 1)
    {
      n = Number(arguments[1]);
      if (n != n)
        n = 0;
      else if (n != 0 && n != (1 / 0) && n != -(1 / 0))
        n = (n > 0 || -1) * Math.floor(Math.abs(n));
    }

    var k = n >= 0
          ? Math.min(n, len - 1)
          : len - Math.abs(n);

    for (; k >= 0; k--)
    {
      if (k in t && t[k] === searchElement)
        return k;
    }
    return -1;
  };
}

似乎只有在IE9/10中才能实现。您需要使用垫片来支撑它。请参阅:,特别是第行。

根据W3School,lastIndexOf由IE支持:@sdespont,这不是w3schools第一次出错