質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

795閲覧

ラジオボタン未選択で全表示する

codemanvs

総合スコア45

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/03/22 11:04

編集2021/03/22 11:06

前提・実現したいこと

タブ切り替え機能があり、その切り替えタブの中にラジオボタンでカテゴリー分けが出来る機能を作りました。
今回実現したい事を簡潔に言うと、
ラジオボタン部分が未選択の場合は、リストタグ部分のコンテンツが全て表示されるようにしたいです。

現状では、例えば
野菜タブクリック → 野菜aクリックで野菜aだけ表示され、野菜b,野菜cは非表示になります。
そしてその状態で続けて、果物タブクリック → 果物aクリックすると、果物タブラジオボタンが未選択の状態にも関わらず、果物aだけが表示され、果物b,果物cが非表示のままです。
この際に、果物b,果物cも表示された状態のままにしておきたいです。

少しややこしいですが、お分かりの方いれば力を貸していただけると嬉しく思います。
よろしくお願いします....

該当のソースコード

html

1 <ul class="tab"> 2 <li class="active"><a href="#tab1" >すべて表示</a></li><!--タブ切り替えボタン--> 3 <li><a href="#tab2">野菜タブ</a></li><!--タブ切り替えボタン--> 4 <li><a href="#tab3">果物タブ</a></li><!--タブ切り替えボタン--> 5 </ul> 6 7 8<div class="tabContents active" id="tab1"> 9 <div class="link-card-wrap"> 10 <ul class="link-card-list"> 11<li data-group="a"><a href="single-example1.html">コンテンツa</li> 12<li data-group="b"><a href="single-example1.html">コンテンツa</li> 13<li data-group="c"><a href="single-example1.html">コンテンツa</li> 14 </ul> 15</div><!--link-card-wrap--> 16</div> 17 18 19<div class="tabContents active" id="tab2"> 20<div class="radio-btn-wrap"> 21<label> 22<input class="radio-input is-active" type="radio" name="kind" value="野菜a" data-group="a">野菜a<!--カテゴリーラジオボタン--> 23</label> 24<label> 25<input class="radio-input is-active" type="radio" name="kind" value="野菜b" data-group="a">野菜b<!--カテゴリーラジオボタン--> 26</label> 27<label> 28<input class="radio-input is-active" type="radio" name="kind" value="野菜c" data-group="a">野菜c<!--カテゴリーラジオボタン--> 29</label> 30</div> 31 32 <div class="link-card-wrap"> 33 <ul class="link-card-list"> 34<li data-group="a"><a href="single-example1.html">野菜a</li> 35<li data-group="b"><a href="single-example1.html">野菜b</li> 36<li data-group="c"><a href="single-example1.html">野菜c</li> 37 </ul> 38</div><!--link-card-wrap--> 39</div> 40 41<div class="tabContents active" id="tab3"> 42<div class="radio-btn-wrap"> 43<label> 44<input class="radio-input is-active" type="radio" name="kind" value="果物a" data-group="a">果物a<!--カテゴリーラジオボタン--> 45</label> 46<label> 47<input class="radio-input is-active" type="radio" name="kind" value="果物b" data-group="a">果物b<!--カテゴリーラジオボタン--> 48</label> 49<label> 50<input class="radio-input is-active" type="radio" name="kind" value="果物c" data-group="a">果物c<!--カテゴリーラジオボタン--> 51</label> 52</div> 53 <div class="link-card-wrap"> 54 <ul class="link-card-list"> 55<li data-group="a"><a href="single-example1.html">果物a</li> 56<li data-group="b"><a href="single-example1.html">果物a</li> 57<li data-group="c"><a href="single-example1.html">果物a</li> 58 </ul> 59</div><!--link-card-wrap--> 60</div> 61

js

1タブ切り替え部分 2 3 $(function() { 4 $(".tab a").click(function() { 5 $(this).parent().addClass("active").siblings(".active").removeClass("active"); 6 var tabContents = $(this).attr("href"); 7 $(tabContents).addClass("active").siblings(".active").removeClass("active"); 8 return false; 9 }); 10 }); 11

js

1ラジオボタン(カテゴリー分け部分) 2 3 var searchItem = '.radio-input'; // 絞り込む項目を選択するエリア 4 var listItem = '.list-item'; // 絞り込み対象のアイテム 5 var hideClass = 'is-hide'; // 絞り込み対象外の場合に付与されるclass名 6 var activeClass = 'is-active'; // 選択中のグループに付与されるclass名 7 8 $(function() { 9 // 絞り込みを変更した時 10 $(searchItem).on('click', function() { 11 $(searchItem).removeClass(activeClass); 12 var group = $(this).addClass(activeClass).data('group'); 13 search_filter(group); 14 }); 15 }); 16 17 /** 18 * リストの絞り込みを行う 19 * @param {String} group data属性の値 20 */ 21 function search_filter(group) { 22 // 非表示状態を解除 23 $(listItem).removeClass(hideClass); 24 // 値が空の場合はすべて表示 25 if(group === '') { 26 return; 27 } 28 // リスト内の各アイテムをチェック 29 for (var i = 0; i < $(listItem).length; i++) { 30 // アイテムに設定している項目を取得 31 var itemData = $(listItem).eq(i).data('group'); 32 // 絞り込み対象かどうかを調べる 33 if(itemData !== group) { 34 $(listItem).eq(i).addClass(hideClass); 35 } 36 } 37 } 38

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

css

1.tabContents:not(.active){display:none;}

としておいて

javascript

1$(function(){ 2 $('.tabContents').removeClass('active'); 3 $('.tab a').on('click',function(){ 4 $('.tabContents').removeClass('active'); 5 $($(this).attr('href')).addClass('active'); 6 $('.radio-input').prop('checked',false); 7 $('li[data-group]').show(); 8 }); 9 $('[data-group]:radio').on('click',function(){ 10 var group=$(this).data('group'); 11 $(this).closest('.tabContents').find('li[data-group]').hide().filter(function(){return $(this).data('group')==group;}).show(); 12 }); 13});

投稿2021/03/22 12:29

yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2021/03/22 12:30

data-groupのa,b,cはちゃんとつけてください 果物aが3つあるのでa,b,cにしてください
codemanvs

2021/03/22 13:09

できました!!感謝感激です...ありがとうございます...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問