回答編集履歴

2

修正

2017/10/13 08:47

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -1,3 +1,69 @@
1
+ なぜ「stopの度に.each()が動作するのはあまり良くないのではないか」と思ったのかわかりませんが、やろうとしていることを実現するには`.each()`しか方法はないです。なんとなく良くない、という非合理な理由であればそれは無視してよいです。
2
+
3
+ ```javascript
4
+
5
+ stop: function () {
6
+
7
+ var list = [];
8
+
9
+ var $elm = $('#hoge > .items');
10
+
11
+ $elm.each(function () {
12
+
13
+ var $test = $(this).data('aaa');
14
+
15
+ list.push($test);
16
+
17
+ });
18
+
19
+ console.log(list); // data-aaaの配列[10, 20, 30, 40, 50]
20
+
21
+ },
22
+
23
+ ```
24
+
25
+
26
+
27
+ `#hoge`の内容が動的に変わらないのであれば、createの際に取ってしまって、stopで再利用する形もよいかもしれません。
28
+
29
+ ```javascript
30
+
31
+ create: function () {
32
+
33
+ var list = [];
34
+
35
+ var $elm = $('#hoge > .items');
36
+
37
+ $elm.each(function () {
38
+
39
+ var $test = $(this).data('aaa');
40
+
41
+ list.push($test);
42
+
43
+ });
44
+
45
+ $(this).data('list', list);
46
+
47
+ },
48
+
49
+ stop: function () {
50
+
51
+ var list = $(this).data('list');
52
+
53
+ console.log(list); // data-aaaの配列[10, 20, 30, 40, 50]
54
+
55
+ },
56
+
57
+ ```
58
+
59
+
60
+
61
+
62
+
63
+ # 以下の回答は質問文編集前の内容です
64
+
65
+
66
+
1
67
  コードとHTMLを見る限り、現状eachを使う理由がありません。これでいいです。
2
68
 
3
69
  ```javascript

1

childrenの代わりのセレクタを追加

2017/10/13 08:46

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  stop: function () {
8
8
 
9
- var $elm = $('#hoge .items');
9
+ var $elm = $('#hoge > .items');
10
10
 
11
11
  console.log($elm);
12
12