未捕获的类型错误:对象没有方法“包含”
2013-09-16
1490
我在项目中使用了 jQuery
.contain()
方法,它在 Firefox 中运行良好,但在 Google Chrome 中却出错。我的代码如下所示:
if (txtsearchvalue.contains('-')) {
var Arraytxtsearchvalue = [];
Arraytxtsearchvalue = txtsearchvalue.split('-');
}
Uncaught TypeError: Object
17-331-250251-92
has no method 'contains'
在 Chrome 47 中错误消息为:
Uncaught TypeError: txtsearchvalue.contains is not a function
3个回答
jQuery 有一个
contains()
方法,但是它并不像您想象的那样工作;具体来说,它不适用于文本。jQuery 还有一个
:contains
选择器
,它更接近您
似乎
想要的...
话虽如此,我怀疑
txtsearchvalue
是一个字符串,而不是 jQuery 对象。 FireFox 有一个
String.contains()
方法,而 Chrome 没有。
Mozilla 为其非标准方法提供了一个 polyfill( MDN ):
if(!('contains' in String.prototype))
String.prototype.contains = function(str, startIndex) {
return -1 !== String.prototype.indexOf.call(this, str, startIndex);
};
canon
2013-09-16
只需使用
String.prototype.indexOf()
:
if (txtsearchvalue.indexOf('-') > -1) {
var Arraytxtsearchvalue = [];
Arraytxtsearchvalue = txtsearchvalue.split('-');
}
Oliboy50
2013-09-16
使用 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
const sentence = 'The quick brown fox jumps over the lazy dog.';
const word = 'fox';
console.log(`The word "${word}" ${sentence.includes(word) ? 'is' : 'is not'} in the sentence`);
AsukaMinato
2022-12-15