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

为什么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 关注
  • 564 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号