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

回答編集履歴

1

ul 追加

2015/12/05 10:08

投稿

anozon
anozon

スコア667

answer CHANGED
@@ -33,4 +33,36 @@
33
33
  });
34
34
  </script>
35
35
 
36
+ ```
37
+
38
+ --- 追記 ul li 対応
39
+ ```js
40
+ <script type="text/javascript">
41
+ $(function() {
42
+ var $childs = $('.hoge1_parent').children();
43
+ // クラスの重複数記録
44
+ var indexes = {};
45
+ var $dl = $('<ul/>').attr('class', 'hoge2_parent');
46
+ var $li_tmp = $('<li><dl><dt><a href="#"></a></dt><dd></dd></dl></li>')
47
+ $childs.each(function() {
48
+ var className = $(this).attr('class');
49
+ if (!(className in indexes)) {
50
+ indexes[className] = 0;
51
+ }
52
+ // クラスの重複をカウント
53
+ var i = indexes[className] += 1;
54
+ // id 付与
55
+ var idName = className + '_' + i;
56
+ $(this).attr('id', idName);
57
+ // dt, dd 要素作成
58
+ var info1 = $(this).find('.info1').html();
59
+ var info2 = $(this).find('.info2').html();
60
+ $li = $li_tmp.clone();
61
+ $li.find('a').html(info1).attr('href', '#' + idName);
62
+ $li.find('dd').html(info2);
63
+ $dl.append($li);
64
+ });
65
+ $('.hoge1_parent').after($dl);
66
+ });
67
+ </script>
36
68
  ```