IE8不支持数组的indexOf方法 如何解决
转自:http://www.jbxue.com/article/8367.html
原因分析:
这是一个js bug, 在IE8下,js数组没有indexOf方法,会报错;而在其它浏览器下(Firefox, Chrome, IE9)都是正常的。
解决方案:
1.个人在网上找到了一种解决方法:
就是在使用indexOf方法前,验证一下是否存在该方法IndexOf方法,如果有调用;如果没有就添加一个:
代码如下:
//添加数组IndexOf方法
if (!Array.prototype.indexOf){
Array.prototype.indexOf = function(elt /*, from*/){
var len = this.length >>> ; var from = Number(arguments[]) || ;
from = (from < )
? Math.ceil(from)
: Math.floor(from);
if (from < )
from += len; for (; from < len; from++){
if (from in this && this[from] === elt)
return from;
}
return -;
};
}
2.对于本ID来说,我已经引入了jquery的库函数,发现jquery里面也有类似工具函数(jQuery.inArray()方法):
就使用jQuery.inArray()替换了Array.prototype.indexOf,使用实例如下:
var arr = [ , "Pete", , "John" ];
jQuery.inArray("John", arr); //
jQuery.inArray(, arr); //
jQuery.inArray("David", arr); //-1
jQuery.inArray("Pete", arr, ); //-1
3. 上面的方法也可以结合使用。
IE8不支持数组的indexOf方法 如何解决的更多相关文章
- 终于解决了IE8不支持数组的indexOf方法,array的IndexOf方法
/* 终于解决了IE8不支持数组的indexOf方法 */ if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (el ...
- IE8不支持数组的indexOf方法
在IE8下有个js错误,但是在其它浏览器下(Firefox, Chrome, IE9)下面都很正常.后来调试发现原因是在IE8下,js数组没有indexOf方法. 在使用indexOf方法前,执行一下 ...
- 解决了IE8不支持数组的indexOf方法
ie在过去给我们添了很多坑. if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(elt /*, from*/ ) { ...
- js解决IE不支持数组的indexOf()方法
if (!Array.indexOf) { Array.indexOf = function (obj) { ...
- JavaScript——数组的indexOf()方法在IE8中的兼容性问题
昨天在工作中遇到一个问题:数组的indexOf()方法在IE8中无效. 如以下代码在IE8中报错“对象不支持“indexOf”属性或方法”: var arr = [1,2,3]; var index ...
- JavaScript—从数组的indexOf方法深入——Object的Property机制。
在js中,可以说万物皆对象(object),一个数组也是一个对象(array). 很多对象都有很多很方便的方法 比如数组的push,concat,slice等等,但是如果一些对象,它没有实现这些方法, ...
- js 判断数组包含某值的方法 和 javascript数组扩展indexOf()方法
var questionId = []; var anSwerIdValue = []; ////javascript数组扩展indexOf()方法 Array.prototype.indexOf ...
- 数组的indexOf方法--数组去重
数组的indexOf方法 数组方法大家再熟悉不过了,却忽略了数组有 indexOf 这个方法(我个人感觉). 干说不练瞎扯淡,遇到了什么问题,注意⚠️点又在哪里? let arr = ['orange ...
- IE8数组不支持indexOf方法的解决办法
在使用indexof方法之前加上以下代码就可以了. if (!Array.prototype.indexOf){ Array.prototype.indexOf = functio ...
随机推荐
- 使用nproxy代理本地服务到内网
前端开发中:很多场景需要在局域网下的其他手机或设备查看网页, 问题来了, web服务部署在本机的某个端口上(8080),只能通过本机浏览器访问, 怎样能让局域网下的其他设备也访问呢?可能你会说 关闭 ...
- Python - Django - ORM 实例(二)
在 app01/models.py 中添加 Book 类对象表 from django.db import models # Create your models here. # 出版社 class ...
- 收集的一些python基础教学博客
=======python3学习链接======= Python 3 教程:http://www.runoob.com/python3/python3-tutorial.html 深入python3: ...
- tornado-简单的服务器
安装tornado pip install tornado 安装sqlalchemy 1.大概代码的解释 import tornado.ioloop #开启循环,等待访问 import tornado ...
- UVA439-水题
题意:一只棋盘上的马,从一个点到另外一个点要走多少步 解法:广搜 #include<stdio.h> #include<iostream> #include <strst ...
- 2.登录linun 输入密码登录不进去 进入单用户模式 修改 然后reboot
centos进入单用户模式 单用户模式,就是你现在站在这台机器面前能干的活,再通俗点就是你能够接触到这个物理设备. 一般干这个活的话,基本上是系统出现严重故障或者其他的root密码忘记等等,单用户模式 ...
- plsql 执行批量文件
plsql 执行批量文件 plsql>command window @c:\a.sql;@c:\b.sql;@c:\c.sql;
- c++标准库中的string常用函数总结《转》
标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...
- 关于gevent的一些理解(一)
前言:gevent是python的一个并发框架,以微线程greenlet为核心,使用了epoll事件监听机制以及诸多其他优化而变得高效.而且其中有个monkey类, 将现有基于Python线程直接转化 ...
- ubuntu 安装MySQLdb
ubuntu运行sudo pip install MySQL-python安装MySQLdb时报错:Command "python setup.py egg_info" faile ...