由于某种原因,我在 IE8 和 IE7 中遇到了这个错误。我正在遍历对象中的所有键,它一直在告诉我Object doesn't support this property or method
:
var inVal = $(inType + "#" + inName).val().trim();
整个区块如下:
for (var key in inputs) { // find all keys "brand", "name", etc. in our inputs object
var errors = false;
if (inputs.hasOwnProperty(key)) { // focus on our obj. not all others on page
var inType = inputs[key].inputType;
var inName = inputs[key].inputName;
var inVal = $(inType + "#" + inName).val().trim(); // construct input field
if (inVal == '' || inVal == null) {
errors = true;
$('#' + inName + '-error').html('');
$('#' + inName + '-error').hide().fadeIn().html(inputs[key].errorMsg);
$(inType + '#' + inName).focus();
$('#modal-loadable-inner').scrollTop(inputs[key].scrollTop);
return;
} else { // user corrected error
errors = false;
$('#' + inName + '-error').html(''); // remove error txt
}
}
}
有人在 Doug Crockford 的 jslint 板上发布了这个,他回复说:
for (key in object) { if (Object.prototype.hasOwnProperty.call(object, key)) { ... } }
hasOwnProperty 应该是一个操作符,而不是一个方法,因为作为一个方法,它很容易出现这些问题。但它就是这样,所以你必须解决这个问题。
像往常一样在 Chrome、FF、Safari、Opera 等中正常工作。关于解决方法的任何想法?