JavaScript/jQuery 在 IE 中停止运行

标签 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 错误是:“对象不支持属性或方法 'indexOf'”

我尝试按如下方式重写 if 语句,但没有成功:

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

有什么建议吗?

编辑:问题是我的浏览器(以某种方式)恢复为 IE 8 渲染。似乎这是一个公司范围的问题。为了防止进一步出现问题,是否有一种在 IE 8 兼容代码中轻松执行此脚本的方法?

最佳答案

一个合理的猜测是,您以某种方式提高了 IE 版本以模拟 IE8,而 IE8 不支持 indexOf()(请参阅 Why doesn't indexOf work on an array IE8? )。您可以通过多种方式(意外或其他方式)执行此操作 - 请参阅此处的答案:https://stackoverflow.com/a/17877416/68231 .

关于JavaScript/jQuery 在 IE 中停止运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26244055/

相关文章:

Javascript、时间和日期 : Getting the next day, 周、月、年等

javascript - 单独定位 div 元素

jquery - 迭代 Json 对象以获取第一个对象

javascript - IE 显示我的代码而不是我的网页,我该如何解决此问题?

html - 如何让一个 div 填充整个表格单元格?

javascript - 如何在 onmousedown 事件中更改所选行的颜色

javascript - "let _self = this"在 Javascript/Typescript 中是什么意思?

javascript - 用户从 typeahead.js 选择结果后如何保存值?

html - MP4 视频无法在 Internet Explorer 11 中播放

javascript - 使用 Onsen-ui 将数据库中的数据显示到 Phonegap 应用程序中