• 締切済み

jQueryで条件が正の場合にクラスを追加

開閉式のリストを作成しています。 ツリーが閉じている場合は+の画像、開いている場合は-の画像を表示させる為、 jQueryで条件が正の場合のみクラスを追加したいです。 if文を挿入するとクラスの追加が反映されません。 #.jsコード ----------------------------------------------------- $(document).ready(function() {   $("dd").css("display","none");   $("dt").click(function(){     $(this).next().slideToggle("fast");     if(! $("dd").css("display","none") ) {       $("dd").addClass("aaa");     }   }); }); ----------------------------------------------------- ↑上記コードでddにaaaクラスがある場合画像、cssで背景画像を表示したいです。 #.htmlコード ----------------------------------------------------- <dl>   <dt>ここの画像を変更させたいです。</dt>     <dd>       ここを開閉させたいです。     </dd> </dl> ----------------------------------------------------- よろしくお願い致します。

みんなの回答

  • tracer
  • ベストアンサー率41% (255/621)
回答No.1

ご存知とは思いますが、念のため基本的なことを。 ifの条件式には、trueもしくはfalseと評価できる式が必要です。 例文の$("dd").css("display","none") からは、どんな値を期待していますか? alert($("dd").css("display","none") )でどんな値が返るか確認してみてください。 要素に特定のクラスがあるかどうかを調査するにはhasClassを使うとよいと思います。

Key00
質問者

お礼

別所にて問題解決しましたので質問を終了致しました。 アドバイス有難うございます。

Key00
質問者

補足

初期状態が非表示ですから、$("dd").css("display","none")ではtrueの値、 その後のClick時にfalseになるのでそこで分岐させたいと考えていました。 jQueryは勉強を始めたばかりなので、hasClassを知りませんでした。 調べてみようと思います。有難うございます。

関連するQ&A