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

回答編集履歴

2

修正

2017/10/13 08:47

投稿

masaya_ohashi
masaya_ohashi

スコア9210

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

1

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

2017/10/13 08:46

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -2,7 +2,7 @@
2
2
  ```javascript
3
3
 
4
4
  stop: function () {
5
- var $elm = $('#hoge .items');
5
+ var $elm = $('#hoge > .items');
6
6
  console.log($elm);
7
7
  },
8
8
  ```