回答編集履歴

1

ul 追加

2015/12/05 10:08

投稿

anozon
anozon

スコア662

test CHANGED
@@ -69,3 +69,67 @@
69
69
 
70
70
 
71
71
  ```
72
+
73
+
74
+
75
+ --- 追記 ul li 対応
76
+
77
+ ```js
78
+
79
+ <script type="text/javascript">
80
+
81
+ $(function() {
82
+
83
+ var $childs = $('.hoge1_parent').children();
84
+
85
+ // クラスの重複数記録
86
+
87
+ var indexes = {};
88
+
89
+ var $dl = $('<ul/>').attr('class', 'hoge2_parent');
90
+
91
+ var $li_tmp = $('<li><dl><dt><a href="#"></a></dt><dd></dd></dl></li>')
92
+
93
+ $childs.each(function() {
94
+
95
+ var className = $(this).attr('class');
96
+
97
+ if (!(className in indexes)) {
98
+
99
+ indexes[className] = 0;
100
+
101
+ }
102
+
103
+ // クラスの重複をカウント
104
+
105
+ var i = indexes[className] += 1;
106
+
107
+ // id 付与
108
+
109
+ var idName = className + '_' + i;
110
+
111
+ $(this).attr('id', idName);
112
+
113
+ // dt, dd 要素作成
114
+
115
+ var info1 = $(this).find('.info1').html();
116
+
117
+ var info2 = $(this).find('.info2').html();
118
+
119
+ $li = $li_tmp.clone();
120
+
121
+ $li.find('a').html(info1).attr('href', '#' + idName);
122
+
123
+ $li.find('dd').html(info2);
124
+
125
+ $dl.append($li);
126
+
127
+ });
128
+
129
+ $('.hoge1_parent').after($dl);
130
+
131
+ });
132
+
133
+ </script>
134
+
135
+ ```