1

.contain()プロジェクトでjQuery メソッドを使用しましたが、Firefox では正常に動作していますが、Google Chrome ではエラーが発生します。私のコードは次のようになります。

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

キャッチされていないTypeError: オブジェクト17-331-250251-92にメソッド 'contains' がありません

Chrome 47 のエラー メッセージは次のとおりです。

キャッチされていない TypeError: txtsearchvalue.contains は関数ではありません

4

2 に答える 2

3

jQuery にはcontains()メソッドがありますが、思ったようには機能しません。具体的には、テキストでは機能しません。jQueryには、あなたが望むものに近いセレクターもあります...:contains

そうは言っても、私の疑いは、それtxtsearchvalueが jQuery オブジェクトではなく文字列であるということです。FireFox にはString.contains()メソッドがありますが、Chrome にはありません。

Mozilla には、非標準メソッド ( MDN ) のポリフィルがあります。

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 に答える