JavaScript / jQuery在IE中停止运行

时间:2014-10-07 19:49:19

标签: javascript jquery internet-explorer

我有以下脚本:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $(this).find("[id$='Panel']").hide();
        $(".toggleDisplay").change(function () {
            var groupName = $(this).find(":radio").attr('name');
            var ans = $('input[name="' + groupName + '"]:radio:checked').val();
            var displaylist = ["1", "2", "3", "4", "5"];
            if (displaylist.indexOf(ans) > -1) {
                $(this).find("[id$='Panel']").show();
            } else {
                $(this).find("[id$='Panel']").hide();
            }
        });
    });
</script>

当我上周插入/测试时,它在IE 11中运行良好。今天,它停止了工作。但是,它仍可在Chrome中使用。我收到的IE错误是:&#34;对象不支持属性或方法&#39; indexOf&#39;&#34;

我试图按如下方式重写if语句,但没有运气:

if ($.inArray(ans, displayList) != -1) {}

有什么建议吗?

编辑:问题是我的浏览器(不知何故)恢复为IE 8渲染。似乎这是一个公司范围的问题。为了防止进一步的打嗝,有一种无痛的方法在IE 8兼容代码中执行此脚本吗?

1 个答案:

答案 0 :(得分:3)

一个似是而非的猜测是,你以某种方式碰撞了你的IE版本来模仿IE8,IE8并不支持indexOf()(见Why doesn't indexOf work on an array IE8?)。您可以通过各种方式(意外或其他方式)执行此操作 - 请参阅此答案:https://stackoverflow.com/a/17877416/68231