我在我的项目中使用了jQuery .contain()
方法,它在Firefox中正常运行但在Google Chrome中出错。我的代码如下所示:
if (txtsearchvalue.contains('-')) {
var Arraytxtsearchvalue = [];
Arraytxtsearchvalue = txtsearchvalue.split('-');
}
未捕获的TypeError:对象
17-331-250251-92
没有方法'包含'
在Chrome 47中,错误消息为:
未捕获的TypeError:txtsearchvalue.contains不是函数
答案 0 :(得分:3)
jQuery有一个contains()
方法,但它不像你想象的那样工作;特别是,它不适用于文本。 jQuery还有一个:contains
选择器,它更接近你看起来想要的......
那就是说,我怀疑txtsearchvalue
是一个字符串而不是一个jQuery对象。 FireFox采用String.contains()
方法,而Chrome则没有。
Mozilla的非标准方法(MDN)有一个polyfill:
if(!('contains' in String.prototype))
String.prototype.contains = function(str, startIndex) {
return -1 !== String.prototype.indexOf.call(this, str, startIndex);
};
答案 1 :(得分:2)
只需使用String.prototype.indexOf()
:
if (txtsearchvalue.indexOf('-') > -1) {
var Arraytxtsearchvalue = [];
Arraytxtsearchvalue = txtsearchvalue.split('-');
}