回答編集履歴

1

調整

2023/01/23 06:44

投稿

yambejp
yambejp

スコア114747

test CHANGED
@@ -1,3 +1,60 @@
1
1
  "red yellow"はあくまで"red yellow"という一つの値にすぎません
2
2
  単純に「red」か「yellow」にヒットするデータを探せばいいだけでは?
3
3
 
4
+ # 追記
5
+ ざっくりこんな感じでデータをもってみては?
6
+ ```javascript
7
+ <style>
8
+ .hide{display:none;}
9
+ </style>
10
+ <script>
11
+ window.addEventListener('DOMContentLoaded', ()=>{
12
+ document.querySelector('[name="type"]').addEventListener('change',e=>{
13
+ const v=e.target.value;
14
+ document.querySelectorAll('[data-type]').forEach(x=>{
15
+ x.classList.toggle('hide',v!=="all" && !JSON.parse(x.dataset.type).includes(Number(v)));
16
+ });
17
+ });
18
+ });
19
+ </script>
20
+ <div class="contents">
21
+ <div class="filter-area">
22
+ <div class="wrap">
23
+ <div class="box">
24
+ <p>選択項目</p>
25
+ <div class="select">
26
+ <select class="form-select js-filter" name="type">
27
+ <option value="all">全て</option>
28
+ <option value="1">タイプ01</option>
29
+ <option value="2">タイプ02</option>
30
+ <option value="3">タイプ03</option>
31
+ </select>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ <!-- /filter-area -->
37
+ <div class="item-area">
38
+ <div class="wrap">
39
+ <!------ 結果メッセージ ------>
40
+ <p>検索結果:<span class="js-filter-msg"></span></p>
41
+ <!------ アイテム一覧 ------>
42
+ <div class="js-filter-items">
43
+ <div class="js-filter-item" data-type="[1]">
44
+ アイテム01
45
+ </div>
46
+ <div class="js-filter-item" data-type="[2]">
47
+ アイテム02
48
+ </div>
49
+ <div class="js-filter-item" data-type="[3]">
50
+ アイテム03
51
+ </div>
52
+ <div class="js-filter-item" data-type="[1,2]">
53
+ アイテム04
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ <!-- /item-area -->
59
+ </div>
60
+ ```