【jQuery】hasClass is not a functionエラー

公開日: : JavaScript/jQuery

スポンサーリンク

jQueryでセレクタを使って取得してきたjQueryオブジェクトからその子要素をchildrenで複数取得してきておいて、each等で各子要素に対してhasClassでチェックして指定のクラスがあれば何かするといった処理を行おうとしましたが「hasClass is not a function」のエラーが出てしまい結局何もできずじまいでした。

例えばこんな感じです。

var parent = $("#parent");
var children = parent.children();
for (var i = 0; i < children.length; i++){
    var child = children[i];
    if (child.hasClass('hoge')){ //←エラー
        /*******省略*******/
    }
}

デバッグして調べてみると明らかにその子要素がjQueryオブジェクトでないのが原因のようなのですが、いまいち解決策がわからずもやもやしてたところ、どうやらその子要素を「$()」で囲ってやるとそれがjQueryオブジェクトになりうまくいくというのがわかりました。

例えばこんな感じです

var parent = $("#parent");
var children = parent.children();
for (var i = 0; i < children.length; i++){
    var child = $(children[i]); //←$()で囲ってやる
    if (child.hasClass('hoge')){
        /*******省略*******/
    }
}

もしくは、配列のように添え字で取りだそうとするのではなくeachを使って$(this)で取りだすというのもあります。(結局は同じことですが)

var parent = $("#parent");
var children = parent.children();
var i=0;
children.each(function(){
    var child = $(this);
    if (child.hasClass('hoge')){
        /*******省略*******/
    }
    i++;
});
スポンサーリンク
  • このエントリーをはてなブックマークに追加

関連記事

WordPressサイトのSSL対応(HTTPS化)手順のまとめ【さくらサーバー】

先週頃にこのサイトをSSL対応しましたのでその流れについてまとめておき

【Google Charts】動的にグラフを更新する方法

はじめに Webサイト上でグラフを描こうと思った場合、いくつかのJa

体重変化量計算シミュレータ【ダイエット/肥満】

ツール本体 入力 カロリー入力 1日の余剰摂取/消費カロリー

おサイフケータイ対応ストレージ32GBのSIMフリースマホまとめ【2017年秋版】

はじめに SIMフリーの格安スマホのおサイフケータイ機能付きのもので

リクルート期間限定ポイントの有効な使い道

はじめに  先日クレジットカードの見直し活動の一環でポイント還元率の

初心者がお金を貯めるための節約・財テク手法まとめ【ポイント還元・投資・税金対策】

はじめに  最近なるべく節約しようと思い、お金周りに関して色々調べて

動画講座を効率的にキャプチャして復習する方法

はじめに  最近、動画媒体の講座などをたまに視聴しています。独学だと

→もっと見る

  • Author : ががんぼ
    プログラミングやWeb関係で気付いたことについてメモしていく予定。だいたいが備忘録ですが、自分でサンプルを作って動かしてみたりしています。
PAGE TOP ↑