• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jQueryのラジオボタン操作系サンプル探してます)

jQueryのラジオボタン操作系サンプル探してます

このQ&Aのポイント
  • 下側のテーブル内のラジオボタンを押下すると、上側のテーブルのtrの背景色を変更する方法が分からない。
  • 現在、tr行にマウスオーバーするとtrの色を変える、tr行をクリックするとtrの色を変えて保持する、tr行をクリックすると対応するラジオボタンを選択するという機能が実装されている。
  • 次に実現したいのは、ラジオボタンを選択すると対応するtr行の色を変えることであり、trに対してthis以外で指定する方法が分からない。解決策があれば教えていただきたい。

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 jQueryの場合いろいろな要素のセレクト方法があるのでこれだ!という回答が難しいのですが、 まずidは同一HTML内で一意でなければいけません。 id="tr-0"とid="rd-0"とかにしないとダメです。 id="0"を2つ使用することは出来ません。 ほかの動きをどのように実装しているかわからないのですが、radioを選択して番号を取得して対応するtrの背景色を変えるなら以下のような感じだと思います。 $('table input:radio').click ( function() { // idはrd-0,rd-1,rd-2・・という感じなので'-'で分割して配列の1番目に番号が入る var id = $(this).attr('id').split('-')[1]; $('#tr-'+id).css ({ backgroundColor: '#fcc' }); }); 他にもradioと対応する行の並びが同じであれば選択されたradioのindexと同じindexのtrの色を変更するとかいろいろ方法はあります。

STICKY2006
質問者

お礼

こんばんは! お礼が遅れましてすみません。 できましたっ!!! 感謝感激です! >>$('#tr-'+id).css ({ 「#」か。。。なるほど。 んー。ホント、勉強しないと、日々ついていけなくなります@w@(笑 >>まずidは同一HTML内で一意でなければいけません。 コレを直しつつ、IE上では期待通りの動きをしてくれるものの実装にこぎつけました。(他ブラウザは、とりあえず考えなくていい状況なので。。。 <script type="text/javascript"> <!-- var last_click_id = -1; $(function(){ //trをクリックしたら $('tr.table_1').click(function(){ var n = parseInt($(this).attr('id').split('_')[1]); document.F1.planDay[n].checked = true; if(last_click_id >= 0){ //初回以外のクリック $('#tr_' + last_click_id).removeClass('hv_2'); $(this).addClass('hv_2'); last_click_id = n; }else{ //初回クリック $(this).addClass('hv_2'); last_click_id = n; } }); //ラジオボタンをクリックしたら $('input[name="planDay"]:radio').click(function(){ var n = $(this).attr('id').split('_')[1]; if(last_click_id >= 0){ //初回以外のクリック $('#tr_' + last_click_id).removeClass('hv_2'); $('#tr_' + n).addClass('hv_2'); last_click_id = n; }else{ //初回クリック $('#tr_' + n).addClass('hv_2'); last_click_id = n; } }); //テーブル要素のtr要素をマウスオーバーしたら $('tr.table_1').hover(function(){ //hoverクラス「hv」を追加する $(this).addClass('hv'); },function(){ //マウスアウトしたら //hoverクラス「hv」を削除する $(this).removeClass('hv'); }); }); //--> </script> <style> tr.table_1.hv{ background-color: #66aa00; cursor: pointer; } tr.table_1.hv_2{ background-color: #ffaa55; cursor: pointer; } </style> あーだこーだやった結果、いろんなとこのサンプルソースをくっつけたので、なーんか書き方に統一感は無いですが、今後の課題ということで@w@(笑 trをクリックした際の、ラジオボタンとの連動~の所だけ、他の部分と毛並みが違うので、そこだけもうちょっと調べつつ、キレイに出来るところはして、完成!になりそうです。 助かりました。 取り急ぎ(え? お礼までに。ありがとうございましたm(_ _)m

関連するQ&A