javascript エラー「Uncaught TypeError: xxx.contains is not a function」の解決方法

javascript エラー「Uncaught TypeError: xxx.contains is not a function」の解決方法

javascriptで、エラー「Uncaught TypeError: xxx.contains is not a function」が発生した場合の原因と解決方法を記述してます。文字列や配列に「contains」を使用した場合に発生します。「chrome」や「firefox」や「safari」の各ブラウザのエラーメッセージの画像もキャプチャしてます。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 107.0.5304.88

エラー内容

以下の、変数「str」に「contains」で指定した文字列が含まれているかを判定するコードで発生。

const str = 'hello world';

const result = str.contains('world');

エラーメッセージ

Uncaught TypeError: str.contains is not a function

画像

firefox106の場合でも同じエラーが発生します。

Uncaught TypeError: str.contains is not a function

画像

safari15.5では、以下のエラーとなります。

TypeError: str.contains is not a function. (In 'str.contains('world')', 'str.contains' is undefined)

画像

原因

「contains」は、以下のように指定した「class名」がノードに含まれているかを判定する際に使用します。

const str = 'hello world';

const result = str.includes('world');

console.log(result); // true

なので、配列に使用しても同様のエラーが発生します。

const arr = ['hello', 'world'];

const result = arr.contains('world');
// Uncaught TypeError: arr.contains is not a function

解決方法

文字列に指定した値が含まれているかを判定する場合は「includes」を使用します。

const str = 'hello world';

const result = str.includes('world');

console.log(result); // true

配列にも使用できます。

const arr = ['hello', 'world'];

const result = arr.includes('world');

console.log(result); // true