回答編集履歴

2

質問追記を受けての回答追記

2017/03/31 13:58

投稿

ku__ra__ge
ku__ra__ge

スコア4524

test CHANGED
@@ -25,3 +25,43 @@
25
25
 
26
26
 
27
27
  を質問に追記してください。
28
+
29
+
30
+
31
+
32
+
33
+ ### 以下、質問追記を受けての回答
34
+
35
+ > 何行あるかを調べてその分回すという部分の書き方がどうも、わかっていない状況かと思います。
36
+
37
+
38
+
39
+ jQueryはセレクタで指定した全てに対して設定を行いますので、ループして設定するということをしなくても一括ですべての要素にイベントを設定できます。
40
+
41
+ イベントで呼び出される関数内ではキーワード`this`がイベント発生元の要素を指しますので、以下のようなコードで各コントロールの値が変わっていれば背景が赤になる、という処理が設定できます。
42
+
43
+
44
+
45
+ ```javascript
46
+
47
+ $(function() {
48
+
49
+ $("input").change(function() {
50
+
51
+ // すみません。「ページ表示時に各input要素のvalue値を保存しておく」という処理は
52
+
53
+ // defaultValueを利用すれば不要でしたね。
54
+
55
+ $(this).css("background", this.value != this.defaultValue ? "red" : "white");
56
+
57
+ });
58
+
59
+ });
60
+
61
+ ```
62
+
63
+
64
+
65
+ ちなみにjQueryではこういった事が出来ますが、むしろこんなことが出来るjQueryは特殊な部類なので、質問主さんの「必要な要素についてループしてそれぞれ設定する」という考え方の方向は間違っていません。
66
+
67
+

1

文書整形

2017/03/31 13:58

投稿

ku__ra__ge
ku__ra__ge

スコア4524

test CHANGED
@@ -1,8 +1,12 @@
1
1
  javascriptで、
2
+
3
+
2
4
 
3
5
  1. ページ表示時に各input要素のvalue値を保存しておく
4
6
 
5
7
  2. 各input要素のchangeイベント発生時に、保存しておいたvalue値と現在のvalue値に差があるかチェックし、差があれば色を変える、無ければ色を元に戻す
8
+
9
+
6
10
 
7
11
  という処理を行えば実現できます。
8
12
 
@@ -10,10 +14,14 @@
10
14
 
11
15
  上の回答だけで実現できないようなら、
12
16
 
17
+
18
+
13
19
  - どのようなコードを書いて試してみたのか
14
20
 
15
21
  - 判らない箇所はどこか?
16
22
 
17
23
  - 判らない箇所について、どういった調査をしてみたのか
18
24
 
25
+
26
+
19
27
  を質問に追記してください。