セレクトボックスで表示・非表示を切り替えたいです。
ほぼほぼカタチにはなったのですが
うまく動かない箇所があり投稿させていただきます。
参考)https://macoblog.com/select_show_and_hide/
こちらのサイトを参考に作成しております。
HTML
1<!-- 表示・非表示が切り替える要素 --> 2<ul> 3 <li class="area">北海道</li> 4 <li class="area">東京</li> 5 <li class="area">大阪</li> 6 <li class="area">兵庫</li> 7 <li class="area">京都</li> 8</ul> 9 10<!-- 絞り込むためのトリガー --> 11<select class="select"> 12 <option>全て</option> 13 <option>北海道</option> 14 <option>東京</option> 15 <option>大阪</option> 16 <option>兵庫</option> 17 <option>京都</option> 18</select> 19
CSS
1.hide { 2 /* 表示の切り替えに使用する */ 3 display: none; 4}
$('.select').on('change', function(){ // テキストを取得(例:北海道) var area = $(this).children(':selected').text(); $('.area').each(function(){ // 全て非表示にする(初期化) $(this).addClass('hide'); // '全て'が選択されていれば if(area == '全て'){ // 表示する $(this).removeClass('hide'); // テキスト(例:北海道)が一致していれば }else if($(this).html().match(area)){ // 表示する $(this).removeClass('hide'); } }); });
上記で例えば一度「北海道」を選択し、「すべて」を選択すると
何も表示されない状態になります。
どうすればすべて表示されるようになりますでしょうか?
ご教授下さい。よろしくお願いいたします。
Jsを別ファイルで読み込む場合ってこれで大丈夫でしょうか?
// テキストを取得(例:北海道) var area = $(this).children(':selected').text(); $('.area').each(function(){ // 全て非表示にする(初期化) $(this).addClass('hide'); // '全て'が選択されていれば if(area == '全て'){ // 表示する $(this).removeClass('hide'); // テキスト(例:北海道)が一致していれば }else if($(this).html().match(area)){ // 表示する $(this).removeClass('hide'); } }); });
回答1件
あなたの回答
tips
プレビュー