Array.indexOf在某些IE版本中抛出错误

Kyl*_*yle 15 javascript arrays jquery internet-explorer

IE7和IE8不让我拼接我的阵列(Safari,Chrome,Firefox工作):

        lzaCreateAd1.weatherArray = new Array();
        var jWeatherIcon = $('.weatherIcon');

        jWeatherIcon.bind('click', function (){
            var targetID = $(this).attr('id') + 'Box',
            idVal = targetID.substr(5,1);

            var jTargetBox = $('#'+targetID);

            if (jTargetBox.hasClass('inactive')) {
                jTargetBox.removeClass('inactive').addClass('active');
                lzaCreateAd1.weatherArray.push(idVal);
            } else if (jTargetBox.hasClass('active')) {
                jTargetBox.removeClass('active').addClass('inactive');
                lzaCreateAd1.weatherArray.splice(lzaCreateAd1.weatherArray.indexOf(idVal),1);
            }
        });
Run Code Online (Sandbox Code Playgroud)

IE抛出以下错误:"对象不支持此属性或方法"此行:

lzaCreateAd1.weatherArray.splice(lzaCreateAd1.weatherArray.indexOf(idVal),1);

有任何想法吗?或者按值删除数组项的其他方法?提前致谢!

Yi *_*ang 29

Array.indexOf版本9之前的Internet Explorer不支持.您可以使用jQuery的$.inArray实用程序功能,或任何其他您想要的填充/填充功能.

lzaCreateAd1.weatherArray.splice($.inArray(idVal, lzaCreateAd1.weatherArray) ,1);
Run Code Online (Sandbox Code Playgroud)

请参阅:http://api.jquery.com/jQuery.inArray/

  • 然而,另一个原因是,IE是许多网络发展者存在的祸根.谢谢! (9认同)