質問編集履歴

1

質問の具体化

2019/03/23 04:23

投稿

Yhaya
Yhaya

スコア439

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,25 @@
6
6
 
7
7
  # やりたいこと
8
8
 
9
- HTML中のリスト要素に対して、JavaScriptで定義した動作を実行したいと考えています。例えば、
9
+ HTML中のリスト要素に対して、JavaScriptで定義した動作を実行したいと考えています。
10
+
11
+
12
+
13
+ イメージ的に近いのは、Twitterで、各ツイートには右上に下向きの矢印がついていて(下図の赤丸内)それをクリックすると、そのツイートをコピーしたりブロックするためのメニューが並ぶと思いますが、このように、リストをクリックすると**その**リストに対して処理を行いたいと思っています。
14
+
15
+ ![Twitter Yahoo!ニュースのTweetから引用](757790f9544443d5d1db3cf07c9516e4.jpeg)
16
+
17
+ このとき重要だと思っているのが、Twitterの例を使って説明すると、どのリストをクリックしても出てくるメニュー(コピーやブロック、ミュート)は同じになってほしいが、ブロックをクリックしたときには、そのリストのみに対して処理を実行したいということです。
18
+
19
+
20
+
21
+ # どこまでできていて何がわからないか
22
+
23
+ いくつか頂いた回答を参考に、以下のところまでは理解できています。
24
+
25
+
26
+
27
+ 例えば、
10
28
 
11
29
 
12
30
 
@@ -14,35 +32,45 @@
14
32
 
15
33
  <ul>
16
34
 
17
- <li class="test1"><span>abc</span></li>
35
+ <li class="test" id="test1"><span>abc</span></li>
18
36
 
19
- <li class="test2"><span>def</span></li>
37
+ <li class="test" id="test2"><span>def</span></li>
20
38
 
21
- <li class="test3"><span>ghi</span></li>
39
+ <li class="test" id="test3"><span>ghi</span></li>
22
40
 
23
41
  </ul>
24
42
 
25
43
  ```
26
44
 
27
- というリストがあった場合、このそれぞれの要素に対し例えば文字を変更するという動作をJavaScriptで書いた場合、
45
+ というリストを考えて、
28
-
29
-
30
46
 
31
47
  ```javascript
32
48
 
33
49
  (function(){
34
50
 
51
+ // とりあえずclass名がtestのものを全部取り出す
52
+
35
- var element = document.getElementByClassName("test1");
53
+ var element = document.getElementByClassName("test");
36
54
 
37
55
 
38
56
 
57
+ for (var i = 0; i < element.length; i++){
58
+
39
- /* 文字列を変える */
59
+ /* クリックされリスト要素idと一致するものを探索してメニュを出す */
60
+
61
+ }
40
62
 
41
63
  })();
42
64
 
43
65
  ```
44
66
 
67
+ で動作を定義しました。
68
+
69
+
70
+
45
- といった関数をtest1, test2, test3それぞれ用に1つずつ作る必要があるしょうか?よくWebページでパネルがいくつも並んでいてそれぞれをクリックするとそぞれパネルに対応した編集画面が出るいう動作があと思うが、あれはのよに実現されていでしょうか。
71
+ コードコメントアウトしてある部分で、クリックたリスト要素id一致すを探索」る部分をどう書いいのかがわかりません
72
+
73
+
46
74
 
47
75
 
48
76