为了账号安全,请及时绑定邮箱和手机立即绑定

为什么indexOf不能在IE8数组上工作?

为什么indexOf不能在IE8数组上工作?

Qyouu 2019-06-24 16:25:59
为什么indexOf不能在IE8数组上工作?以下功能在Opera、Firefox和Chrome上运行良好。但是,在IE8中,它在if ( allowed.indexOf(ext[1]) == -1)部分。有人知道为什么吗?有明显的错误吗?function CheckMe() {     var allowed = new Array('docx','xls','xlsx', 'mp3', 'mp4', '3gp', 'sis', 'sisx', 'mp3', 'wav', 'mid', 'amr', 'jpg', 'gif', 'png',      'jpeg', 'txt', 'pdf', 'doc', 'rtf', 'thm', 'rar', 'zip', 'htm', 'html', 'css', 'swf', 'jar', 'nth', 'aac', 'cab', 'wgz');     var fileinput=document.getElementById('f');     var ext = fileinput.value.toLowerCase().split('.');     if ( allowed.indexOf(ext[1]) == -1)      {         document.getElementById('uploadsec').innerHTML = document.getElementById('uploadsec').innerHTML;         alert('This file type is not allowed!');     }}
查看完整描述

3 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

如果你用jQuery为了继续使用indexOf而不必担心兼容性问题,您可以这样做:

if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function(val) {
        return jQuery.inArray(val, this);
    };}

如果您想继续使用indexOf但当它不可用时提供一个退路。


查看完整回答
反对 回复 2019-06-24
?
慕少森

TA贡献2019条经验 获得超9个赞

如果您想使用$.inArray,请小心使用它。我刚刚发现$.inArray只适用于“Array”,而不是字符串。这就是为什么这个函数不能在IE8中工作!

jQueryAPI造成混乱

$.inArray()方法与JavaScript的本机.indexOf()方法类似,因为它在找不到匹配时返回-1。如果数组中的第一个元素与值匹配,则$.inArray()返回0

-他们不应该说“相似”。既然indexOf也支持“String”!


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 535 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信