为什么indexOf在Internet Explorer中不起作用?
这个函数在onSubmit表单中执行,并在Firefox和Chrome中正常工作,但在IE中不起作用。 我怀疑它是indexOf,但我似乎无法找到一种方法来实现它。
function checkSuburbMatch(e) {
var theSuburb = document.getElementById('suburb').value;
var thePostcode = document.getElementById('postcode').value;
var arrayNeedle = theSuburb + " (" + thePostcode + ")";
if(suburbs.indexOf(arrayNeedle) != -1) {
alert("Suburb and Postcode match!");
return false;
} else {
alert("Suburb and Postcode do not match!");
return false;
}
}
IE只是没有Array上的这个方法,你可以自己添加它,但是,从MDC:
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(elt /*, from*/)
{
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
}
这增加了.indexOf()
如果它缺少(在这一点上,这意味着你在IE <9),那么你可以使用它。 至于IE8为什么还没有呢? 我帮不了你...
如果您已经在项目中使用jQuery,则可以使用$ .inArray()
http://api.jquery.com/jQuery.inArray/
MSIE 11上的indexOf()以及其他不喜欢非字符串的变量。 在郊区添加.toString(),它应该修复它。
链接地址: http://www.djcxy.com/p/18963.html上一篇: Why is indexOf not working in Internet Explorer?
下一篇: how to make it work