teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

誤字

2018/04/23 02:13

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -10,10 +10,9 @@
10
10
  ```
11
11
 
12
12
  どうしたらelse以下の条件が効くようになるでしょうか?
13
+ (チェックが2個未満のときの条件分岐はどうやったらできるのか?)
13
14
 
14
- もしできればですが、当該のアラート部分以外はあんまり変えないでほしいです。
15
- とりあえず、チェックが2個未満のときの条件分岐はどうやったらできるのか?をかいつまんでご教示いただけますと嬉しいです。
15
+ ご教示いただけますと嬉しいです。
16
-
17
16
  よろしくお願いいたします。
18
17
 
19
18
  ---

1

誤字

2018/04/23 02:13

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,31 +1,49 @@
1
- 次のjavascript(jQuery)で、なぜか``//チェックが2個未満のき``のアラートが効きません。
1
+ ifelse分岐が効かずにアラートがません。
2
2
 
3
- ちょっとコードが長いのでこちらサンプルをご覧いたがいた方がいいと思いまが、
3
+ javascriptは後述の抜粋して、この部分のアラートでなので
4
- [https://jsfiddle.net/0vezwk66/](https://jsfiddle.net/0vezwk66/)
5
4
 
6
- いちおうそのコードは下記です。
5
+ ```javascript
6
+ //チェックが2個未満のときのアラート
7
+ }else{
8
+ alert('2個未満ですね');
9
+ }
10
+ ```
7
11
 
12
+ どうしたらelse以下の条件が効くようになるでしょうか?
13
+
14
+ もしできればですが、当該のアラート部分以外はあんまり変えないでほしいです。
15
+ とりあえず、チェックが2個未満のときの条件分岐はどうやったらできるのか?をかいつまんでご教示いただけますと嬉しいです。
16
+
17
+ よろしくお願いいたします。
18
+
19
+ ---
20
+
21
+
22
+ ▼動くサンプル
23
+ [https://jsfiddle.net/ojr8xrso/](https://jsfiddle.net/ojr8xrso/)
24
+
25
+ ▼そのコード
8
26
  ```html
9
27
  <div class="check_wrap">
10
28
  <ul id="fluits_list">
11
29
  <li><input id="fluits_apple" class="check_fluits" name="check_fluits" value="apple" type="checkbox">
12
30
  <label for="fluits_apple" class="check_label">
13
- <span class="i apple oishi"></span>
31
+ <span class="i apple damekamo"></span>
14
32
  </label>
15
33
  </li>
16
34
  <li><input id="fluits_grape" class="check_fluits" name="check_fluits" value="grape" type="checkbox">
17
35
  <label for="fluits_grape" class="check_label">
18
- <span class="i grape oishi"></span>
36
+ <span class="i grape damekamo"></span>
19
37
  </label>
20
38
  </li>
21
39
  <li><input id="fluits_banana" class="check_fluits" name="check_fluits" value="banana" type="checkbox">
22
40
  <label for="fluits_banana" class="check_label">
23
- <span class="i banana mazui"></span>
41
+ <span class="i banana daijobu"></span>
24
42
  </label>
25
43
  </li>
26
44
  <li><input id="fluits_kiwi" class="check_fluits" name="check_fluits" value="kiwi" type="checkbox">
27
45
  <label for="fluits_kiwi" class="check_label">
28
- <span class="i kiwi mazui"></span>
46
+ <span class="i kiwi daijobu"></span>
29
47
  </label>
30
48
  </li>
31
49
  </ul>
@@ -48,16 +66,17 @@
48
66
  <p id="now_kiwi">だいじょうぶです</p>
49
67
  </div>
50
68
 
69
+
51
70
  ```
52
71
  ```javascript
53
72
  $(function(){
54
73
 
55
- ////チェックしたらピンクに画像をコピーする
74
+ ////チェックしたらピンクに画像をコピー
56
75
  $('input[name=check_fluits]').change(function(){
57
76
  var clone=$(this).siblings().find('.i').clone();
58
77
  if($('input[name=check_fluits]:checked').length>2) {
59
78
  $(this).prop("checked",false);
60
- alert('もうダメ!');
79
+ alert('チェックは2個までです');
61
80
  return false;
62
81
  }
63
82
  if($(this).prop('checked')){
@@ -66,47 +85,49 @@
66
85
  }).eq(0).html(clone);
67
86
  }else{
68
87
  console.log($.map(clone.prop('classList'),function(x){return "."+x;}).join(""));
69
- //console.log(clone.prop('classList').map(function(){return "."+$(this);}));
70
88
  $('#output1,#output2').has($.map(clone.prop('classList'),function(x){return "."+x;}).join("")).html("");
71
89
  }
72
90
  });
73
91
  $('input[name=check_fluits]').prop('checked',false).filter('[value=apple],[value=banana]').prop('checked',true).trigger("change");
74
92
 
75
-
76
- ////チェックしたらアラート
93
+ ////チェックしたらアラート
77
- $('input[name=check_fluits]').change(function(){
94
+ $('input[name=check_fluits]').change(function(){
78
95
 
79
- //ピンクの画像を水色にコピー
96
+ //ピンクの画像を水色にコピー
80
- var cmc_unit1 = $('#output1').html();
97
+ var cmc_unit1 = $('#output1').html();
81
- $('#outputA').html(cmc_unit1);
98
+ $('#outputA').html(cmc_unit1);
82
- var cmc_unit2 = $('#output2').html();
99
+ var cmc_unit2 = $('#output2').html();
83
- $('#outputB').html(cmc_unit2);
100
+ $('#outputB').html(cmc_unit2);
84
101
 
85
- //チェックしたらアラート
102
+ //「.i」の次のラス(.appleとか)を取り出て代入(アラートで使うため)
86
103
  var pair1 = $('#output1 .i').get(0).className.split(" ")[1];
87
104
  var pair2 = $('#output2 .i').get(0).className.split(" ")[1];
88
105
 
89
- //チェックが2個のとき
106
+ //チェックが2個のときのアラート
90
- if($('#fluits_list :checked').length == 2){
107
+ if($('#fluits_list :checked').length == 2){
91
- var result = $('#now_' + pair1).text();
108
+ var result = $('#now_' + pair1).text();
109
+
110
+ //1個目にチェックしたやつが「.damekamo」を持ってたら、HTMLにある「それを最初にチェックしたらダメです」をアラート
92
- if (($('#output1').find('.i').hasClass('oishi'))){
111
+ if (($('#output1').find('.i').hasClass('oishi'))){
93
- alert(result);
112
+ alert(result);
94
- } else
113
+ } else
114
+ //2個目にチェックしたやつが「.oishi」を持ってたら、HTMLにある「それを最初にチェックしたらダメです」をアラート
95
115
  if (($('#output1').find('.i').hasClass('mazui'))){
96
- alert(result);
116
+ alert(result);
97
- }
117
+ }
98
118
 
119
+ /********************
120
+ 次のアラートがでない!
121
+ ********************/
122
+
99
- //チェックが2個未満のとき
123
+ //チェックが2個未満のときのアラート
100
- }else{
124
+ }else{
101
- alert('2個未満ですね');
125
+ alert('2個未満ですね');
102
- }
126
+ }
103
127
 
104
128
  });
105
129
 
106
130
  });
107
-
108
-
109
-
110
131
  ```
111
132
  ```css
112
133
  .list {
@@ -147,6 +168,4 @@
147
168
  background: aqua;
148
169
  padding: 20px;
149
170
  }
150
- ```
171
+ ```
151
- どうしたら``//チェックが2個未満のとき``のアラートが効くようになるか、ご教示いただければと思い質問させて頂きました。
152
- よろしくお願いいたします。