回答編集履歴

1

追記

2017/10/20 09:38

投稿

masaya_ohashi
masaya_ohashi

スコア9210

test CHANGED
@@ -5,3 +5,45 @@
5
5
 
6
6
 
7
7
  コード的には後ろに書かれているので処理順序がごっちゃになりますが、`on('click')`の中の処理が走るのはクリックされたとき、`console.log(aaa)`の処理が走るのはページが読み込まれたとき、なので、どうあがいてもクリックしたときの内容はページが読み込まれた時点では存在しません。
8
+
9
+
10
+
11
+ ### 追記
12
+
13
+ ただ単に「最後にクリックされたliの内容」を保持しておきたいのでしたら、以下のようなコードがよいと思います。
14
+
15
+ ```javascript
16
+
17
+ $('ul li').on('click', function () {
18
+
19
+ window.aaa = $('#test').find('.hoge').text();
20
+
21
+ window.bbb = $('#test').find('.hogehoge').text();
22
+
23
+ });
24
+
25
+ // どこか別の処理のタイミングで
26
+
27
+ console.log(window.aaa);
28
+
29
+ ```
30
+
31
+
32
+
33
+ windowというオブジェクトはページ全体で1つしか存在しないグローバルスコープ変数です。以下のコードは同義です。
34
+
35
+ ```javascript
36
+
37
+ // ①window変数にプロパティとして追加
38
+
39
+ window.aaa = 'test';
40
+
41
+
42
+
43
+ // ②変数宣言を一切せずいきなりaaaと宣言する
44
+
45
+ aaa = 'test';
46
+
47
+ ```
48
+
49
+ ただし、あまりこういったグローバルな変数を使うのは推奨しません。処理の構造自体を少し考え直すほうがのちのちよい経験になるかと思います。