回答編集履歴

5

tuiki

2022/05/31 04:05

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -26,3 +26,33 @@
26
26
  <div class="info1 info2">条件3-2</div>
27
27
  ```
28
28
  ちょっと条件分けをわかりやすく
29
+ # 追記
30
+ ```javascript
31
+ <script>
32
+ document.addEventListener('change',()=>{
33
+ const s1=document.querySelector('[data-id=sample1]:checked');
34
+ const s2=document.querySelector('[data-id=sample2]:checked');
35
+ document.querySelectorAll('.info1,.info2').forEach(x=>{
36
+ x.toggleAttribute('hidden',
37
+ (x.matches(':not(.info2)') && (!s1 || s2)) ||
38
+ (x.matches(':not(.info1)') && ( s1 || !s2)) ||
39
+ (x.matches('.info1.info2') && (!s1 || !s2)));
40
+ });
41
+ });
42
+ window.addEventListener('DOMContentLoaded', ()=>{
43
+ document.querySelectorAll('.info1,.info2').forEach(x=>x.setAttribute('hidden',1));
44
+ });
45
+ </script>
46
+ <ul>
47
+ <li><label><input data-id="sample1" type="checkbox">これは条件1です</label></li>
48
+ <li><label><input data-id="sample2" type="checkbox">これは条件2です</label></li>
49
+ <li><label><input data-id="sample1" type="checkbox">これは条件1です</label></li>
50
+ <li><label><input data-id="sample2" type="checkbox">これは条件2です</label></li>
51
+ </ul>
52
+ <div class="info1">条件1-1</div>
53
+ <div class="info2">条件2-1</div>
54
+ <div class="info1 info2">条件3-1</div>
55
+ <div class="info1">条件1-2</div>
56
+ <div class="info2">条件2-2</div>
57
+ <div class="info1 info2">条件3-2</div>
58
+ ```

4

chousei

2022/05/31 03:40

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -1,9 +1,9 @@
1
1
  ```javascript
2
2
  <script>
3
3
  document.addEventListener('change',()=>{
4
+ const s1=sample1.checked;
5
+ const s2=sample2.checked;
4
6
  document.querySelectorAll('.info1,.info2').forEach(x=>{
5
- const s1=sample1.checked;
6
- const s2=sample2.checked;
7
7
  x.toggleAttribute('hidden',
8
8
  (x.matches(':not(.info2)') && (!s1 || s2)) ||
9
9
  (x.matches(':not(.info1)') && ( s1 || !s2)) ||

3

chousei

2022/05/31 03:39

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -2,10 +2,12 @@
2
2
  <script>
3
3
  document.addEventListener('change',()=>{
4
4
  document.querySelectorAll('.info1,.info2').forEach(x=>{
5
+ const s1=sample1.checked;
6
+ const s2=sample2.checked;
5
7
  x.toggleAttribute('hidden',
6
- (x.matches(':not(.info2)') && (!sample1.checked || sample2.checked)) ||
8
+ (x.matches(':not(.info2)') && (!s1 || s2)) ||
7
- (x.matches(':not(.info1)') && ( sample1.checked || !sample2.checked)) ||
9
+ (x.matches(':not(.info1)') && ( s1 || !s2)) ||
8
- (x.matches('.info1.info2') && (!sample1.checked || !sample2.checked)));
10
+ (x.matches('.info1.info2') && (!s1 || !s2)));
9
11
  });
10
12
  });
11
13
  window.addEventListener('DOMContentLoaded', ()=>{

2

typo

2022/05/31 03:37

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -23,4 +23,4 @@
23
23
  <div class="info2">条件2-2</div>
24
24
  <div class="info1 info2">条件3-2</div>
25
25
  ```
26
- ちょっと条件をわかりやすく
26
+ ちょっと条件分けをわかりやすく

1

みやすく

2022/05/31 03:36

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -1,9 +1,12 @@
1
1
  ```javascript
2
2
  <script>
3
3
  document.addEventListener('change',()=>{
4
+ document.querySelectorAll('.info1,.info2').forEach(x=>{
5
+ x.toggleAttribute('hidden',
4
- document.querySelectorAll('.info1:not(.info2)').forEach(x=>x.toggleAttribute('hidden',!sample1.checked || sample2.checked));
6
+ (x.matches(':not(.info2)') && (!sample1.checked || sample2.checked)) ||
5
- document.querySelectorAll(':not(.info1).info2').forEach(x=>x.toggleAttribute('hidden',sample1.checked || !sample2.checked));
7
+ (x.matches(':not(.info1)') && ( sample1.checked || !sample2.checked)) ||
6
- document.querySelectorAll('.info1.info2').forEach(x=>x.toggleAttribute('hidden',!sample1.checked || !sample2.checked));
8
+ (x.matches('.info1.info2') && (!sample1.checked || !sample2.checked)));
9
+ });
7
10
  });
8
11
  window.addEventListener('DOMContentLoaded', ()=>{
9
12
  document.querySelectorAll('.info1,.info2').forEach(x=>x.setAttribute('hidden',1));
@@ -20,3 +23,4 @@
20
23
  <div class="info2">条件2-2</div>
21
24
  <div class="info1 info2">条件3-2</div>
22
25
  ```
26
+ ちょっと条件訳をわかりやすく