我有以下脚本:
<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兼容代码中执行此脚本吗?
答案 0 :(得分:3)
一个似是而非的猜测是,你以某种方式碰撞了你的IE版本来模仿IE8,IE8并不支持indexOf()
(见Why doesn't indexOf work on an array IE8?)。您可以通过各种方式(意外或其他方式)执行此操作 - 请参阅此答案:https://stackoverflow.com/a/17877416/68231。