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

回答編集履歴

2

コメント追加(polyfill)

2017/10/04 05:33

投稿

x_x
x_x

スコア13749

answer CHANGED
@@ -29,6 +29,7 @@
29
29
  </div>
30
30
  </div>
31
31
  </template>
32
+ <!-- polyfill -->
32
33
  <script src="template.js"></script>
33
34
  ```
34
35
 

1

サンプル追加

2017/10/04 05:32

投稿

x_x
x_x

スコア13749

answer CHANGED
@@ -5,4 +5,49 @@
5
5
  [https://github.com/webcomponents/template](https://github.com/webcomponents/template)
6
6
 
7
7
  サンプルを提示したいのですが、余裕がないかもしれませんのでここをご覧ください。
8
- [https://www.html5rocks.com/ja/tutorials/webcomponents/template/](https://www.html5rocks.com/ja/tutorials/webcomponents/template/)
8
+ [https://www.html5rocks.com/ja/tutorials/webcomponents/template/](https://www.html5rocks.com/ja/tutorials/webcomponents/template/)
9
+
10
+ -- 10/4 追記 サンプル
11
+ ```HTML
12
+ <template id="hoge">
13
+ <div>
14
+ <div class="context">
15
+ <a href="http://localhost:3000"></a>
16
+ </div>
17
+ <div class="content">
18
+ <div class="item-header">
19
+ <a class="profile"><span class="name">名前</span></a>
20
+ <small class="time">YYYY-MM-DD</small>
21
+ </div>
22
+ <div class="text-container">
23
+ <p class="comment">コメント内容</p>
24
+ </div>
25
+ <div class="item-fotter">
26
+ <span class="reply"></span>
27
+ <span class="retweet"></span>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </template>
32
+ <script src="template.js"></script>
33
+ ```
34
+
35
+ ```JavaScript
36
+ document.addEventListener('DOMContentLoaded', function(event) {
37
+ var data = [["URLA","名前A","日付A","コメントA"],["URLB","名前B","日付B","コメントB"],["URLC","名前C","日付C","コメントC"]];
38
+
39
+ var fragment = document.createDocumentFragment();
40
+ var content = document.getElementById('hoge').content;
41
+
42
+ for (var i = 0, len = data.length; i < len; i++) {
43
+ var clone = content.cloneNode(true);
44
+ clone.querySelector('.context a').href = data[i][0];
45
+ clone.querySelector('.name').textContent = data[i][1];
46
+ clone.querySelector('.time').textContent = data[i][2];
47
+ clone.querySelector('.comment').textContent = data[i][3];
48
+ fragment.appendChild(clone);
49
+ }
50
+
51
+ document.body.appendChild(fragment);
52
+ });
53
+ ```