jQueryには、要素の子要素を取得する方法に.children()
と.find()
があります。
.children()
は子までを取得してくれるのに対して、
.find()
は子と孫まで取得してくれます。便利ですね。
しかし、.find()
を使ったページをIEで表示すると稀に「オブジェクトは 'find' プロパティまたはメソッドをサポートしていません。」というコンソールエラーが表示されます。なぜでしょうか。
それはJavaScriptの.find()
はIE非対応だからです。
このコンソールエラーが表示されるということは、.find()
がjQueryではなくVanilla JSと解釈されています。
.find()の対象が配列の場合、IEでコンソールエラーが発生する
その条件は、.find()
の検索対象がjQueryオブジェクトか配列かの違いです。
つまり、jQueryが$("任意の値").find()
で
Vanilla JSがArray.prototype.find()
と書き分けられる必要があります。
コンソールエラーが発生した箇所は.some()に置きかえる
本当は上記の条件にあわせてコードを書き換えるべきですが、応急処置として
.find()
をBooleanとして利用している場合、そして検索対象が配列の場合(要は.find()
をVanilla JSとして使う場合).some()
で置き換えると意図した動きをしてくれるので参考にしてみてください。