回答編集履歴

1

sample

2019/09/11 05:02

投稿

yambejp
yambejp

スコア114843

test CHANGED
@@ -13,3 +13,91 @@
13
13
 
14
14
 
15
15
  すべてを表示をチェックしたときに他のチェックボックスを非活性にするなど工夫が必要です
16
+
17
+
18
+
19
+ # sample
20
+
21
+
22
+
23
+ クラスとカスタムデータを使ったサンプルです
24
+
25
+
26
+
27
+ ```javascript
28
+
29
+ <script>
30
+
31
+ const show=selector=>{
32
+
33
+ [].forEach.call(document.querySelectorAll('.cx'),x=>{
34
+
35
+ var flg=selector!="" && [].indexOf.call(document.querySelectorAll(selector),x)==-1;
36
+
37
+ x.style.display=flg?"none":"";
38
+
39
+ });
40
+
41
+ }
42
+
43
+ window.addEventListener('DOMContentLoaded', ()=>{
44
+
45
+ [].forEach.call(document.querySelectorAll('[data-target^=c]'),x=>{
46
+
47
+ x.addEventListener('change',e=>{
48
+
49
+ var selector=[].map.call(document.querySelectorAll('[data-target^=c]:checked')||[],x=>"."+x.getAttribute('data-target')).join("");
50
+
51
+ show(selector);
52
+
53
+ });
54
+
55
+ });
56
+
57
+ document.querySelector('#allshow').addEventListener('click',e=>{
58
+
59
+ [].forEach.call(document.querySelectorAll('[data-target^=c]'),x=>{
60
+
61
+ x.checked=false;
62
+
63
+ });
64
+
65
+ show('');
66
+
67
+ });
68
+
69
+ });
70
+
71
+ </script>
72
+
73
+ <label><input type="checkbox" data-target="c1">水に棲んでいる</label><br>
74
+
75
+ <label><input type="checkbox" data-target="c2">陸に棲んでいる</label><br>
76
+
77
+ <label><input type="checkbox" data-target="c3">毛が生えている</label><br>
78
+
79
+ <label><input type="checkbox" data-target="c4">角が生えている</label><br>
80
+
81
+ <label><input type="checkbox" data-target="c5">哺乳類</label><br>
82
+
83
+ <label><input type="checkbox" data-target="c6">爬虫類</label><br>
84
+
85
+ <input type="button" id="allshow" value="すべて表示"><br>
86
+
87
+ <div class="cx c1 c6">ウミガメ</div>
88
+
89
+ <div class="cx c2 c6">カナヘビ</div>
90
+
91
+ <div class="cx c2 c6">カメレオン</div>
92
+
93
+ <div class="cx c2 c3 c5">ヤマネコ</div>
94
+
95
+ <div class="cx c2 c3 c5">ハダカネズミ</div>
96
+
97
+ <div class="cx c1 c3 c5">ラッコ</div>
98
+
99
+ <div class="cx c1 c5">クジラ</div>
100
+
101
+
102
+
103
+ ```