• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jqueryによるクリック時のclass名追加)

jQueryを使用してクリック時にclass名を追加する方法

このQ&Aのポイント
  • サイドバーのメニューをクリックした際にリンクの色を変える方法について説明します。
  • ページAリンクをクリックした場合、liタグにid=selectを追加し、他のリンクのid=selectを削除する処理をjQueryで行います。
  • サイドバーのメニューには#sidebar li aというCSSスタイルが適用されており、クリック時にid=selectがあればcolorが#0F0になります。

質問者が選んだベストアンサー

  • ベストアンサー
  • neko-ten
  • ベストアンサー率55% (1287/2335)
回答No.1

追加するのはidじゃなくてclassにすべき。 IDだと一時的に重複する可能性が存在してくるため適切ではありません。 classであれば複数の属性をつけることもできるため、デザインでわざわざIDを使う理由はないです。 前提としてはアンカーを使うもののページ遷移を伴わない作りじゃないといけないですね。 基本的にはaddClass/removeClassを使うことになります。動きは読んでそのままです。 $("#slider a").click(function(){ //#sliderの子要素になっているliでclassにselectがある場合はselectを除去 $("#slider li.select").removeClass("select"); //クリックしたaの親要素になっているliにselectを付加 $(this).parent("li").addClass("select"); }) 簡単にはこんなもんでいいと思う。 どうしてもIDでってことだと、attrを使って直接書き換えになります。 $("#slider a").click(function(){ $("#slider li#select").attr("id",""); $(this).parent("li").attr("id","select"); })

その他の回答 (1)

  • neko-ten
  • ベストアンサー率55% (1287/2335)
回答No.2

sliderじゃないsidebarだった・・ 今作ってるのと混同してしまった・・・ $("#sidebar a").click(function(){ $("#sidebar li.select").removeClass("select"); $(this).parent("li").addClass("select"); }) $("#sidebar a").click(function(){ $("#sidebar li#select").attr("id",""); $(this).parent("li").attr("id","select"); }) 申し訳ないです・・・

関連するQ&A