1

I have used jQuery .contain() method in my project it is working fine in Firefox but gives error in Google Chrome. My code looks like this:

if (txtsearchvalue.contains('-')) {
  var Arraytxtsearchvalue = [];   
  Arraytxtsearchvalue = txtsearchvalue.split('-');
}

Uncaught TypeError: Object 17-331-250251-92 has no method 'contains'

In Chrome 47 error message is:

Uncaught TypeError: txtsearchvalue.contains is not a function

4

2 回答 2

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); 
    };
于 2013-09-16T14:03:45.283 回答
2

只需使用String.prototype.indexOf()

if (txtsearchvalue.indexOf('-') > -1) {  
   var Arraytxtsearchvalue = [];   
   Arraytxtsearchvalue = txtsearchvalue.split('-'); 
}
于 2013-09-16T14:04:01.030 回答