尝试运行以下代码
var superGroup = $.parseJSON(data);
$.each(superGroup, function(idx, obj) {
if (idx.contains("Addr_Line")) {
if (obj != null) {
currentAddress.push(obj);
}
}
});
其中supergroup是一个带有一堆属性的JSON对象,我基本上只想在这个包含“addr_line”的对象中添加属性的值。在chrome中我注意到
上有一个JS错误idx.contains()
说idx不包含方法
知道如何解决这个问题吗?
答案 0 :(得分:2)
这是因为Chrome不支持String.prototype.contains():https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/contains
这样做:
$.each(superGroup, function(idx, obj) {
if (idx.indexOf('Addr_Line') !== -1) {
if (obj != null) {
currentAddress.push(obj);
}
}
});
您可能还想检查idx
是否为string
:
$.each(superGroup, function(idx, obj) {
if (typeof idx == 'string' && idx.indexOf('Addr_Line') !== -1) {
if (obj != null) {
currentAddress.push(obj);
}
}
});
答案 1 :(得分:1)
根据the docs for String.contains
,您可以通过添加以下代码来填充此仅限Firefox的方法:
if (!('contains' in String.prototype)) {
String.prototype.contains = function(str, startIndex) {
return -1 !== String.prototype.indexOf.call(this, str, startIndex);
};
}