我有以下脚本:
<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/