回答編集履歴

3

再調整

2019/10/09 02:58

投稿

yambejp
yambejp

スコア116694

test CHANGED
@@ -80,7 +80,7 @@
80
80
 
81
81
 
82
82
 
83
- # 調整版
83
+ # 調整版
84
84
 
85
85
  ```javascript
86
86
 
@@ -100,7 +100,11 @@
100
100
 
101
101
  menu.appendChild(ul);
102
102
 
103
- [].forEach.call(document.querySelectorAll('h2,h3'),x=>{
103
+ [].forEach.call(document.querySelectorAll('h2,h3'),(x,y)=>{
104
+
105
+ var id='target-'+(y+1).toString();
106
+
107
+ x.setAttribute('id',id);
104
108
 
105
109
  var li=document.createElement('li');
106
110
 
@@ -108,7 +112,7 @@
108
112
 
109
113
  var a=document.createElement('a');
110
114
 
111
- a.setAttribute('href','#');
115
+ a.setAttribute('href','#'+id);
112
116
 
113
117
  a.textContent=x.textContent;
114
118
 
@@ -174,4 +178,16 @@
174
178
 
175
179
  <h2>h-3</h2>
176
180
 
181
+ <!-- 頭出しするためダミーのbr -->
182
+
183
+ <br><br><br><br><br><br><br><br><br><br><br>
184
+
185
+ <br><br><br><br><br><br><br><br><br><br><br>
186
+
187
+ <br><br><br><br><br><br><br><br><br><br><br>
188
+
189
+ <br><br><br><br><br><br><br><br><br><br><br>
190
+
191
+
192
+
177
193
  ```

2

調整

2019/10/09 02:57

投稿

yambejp
yambejp

スコア116694

test CHANGED
@@ -77,3 +77,101 @@
77
77
  <h2>h-3</h2>
78
78
 
79
79
  ```
80
+
81
+
82
+
83
+ # 調整版
84
+
85
+ ```javascript
86
+
87
+ <style>
88
+
89
+ .h3{background-Color:yellow}
90
+
91
+ </style>
92
+
93
+ <script>
94
+
95
+ window.addEventListener('DOMContentLoaded', ()=>{
96
+
97
+ var menu=document.querySelector('#index');
98
+
99
+ var ul=document.createElement('ul');
100
+
101
+ menu.appendChild(ul);
102
+
103
+ [].forEach.call(document.querySelectorAll('h2,h3'),x=>{
104
+
105
+ var li=document.createElement('li');
106
+
107
+ ul.appendChild(li);
108
+
109
+ var a=document.createElement('a');
110
+
111
+ a.setAttribute('href','#');
112
+
113
+ a.textContent=x.textContent;
114
+
115
+ li.appendChild(a)
116
+
117
+ switch(x.nodeName){
118
+
119
+ case "H2":
120
+
121
+ /* h2特有の処理がないので空 */
122
+
123
+ break;
124
+
125
+ case "H3":
126
+
127
+ li.classList.add('h3');
128
+
129
+ break;
130
+
131
+ }
132
+
133
+ });
134
+
135
+ });
136
+
137
+ </script>
138
+
139
+ <div id="index">
140
+
141
+ <p class="toc-title">目次</p>
142
+
143
+ <!-- ここに目次が<ul><li></li></ul>の形で表示される -->
144
+
145
+ </div>
146
+
147
+ <h2>h-1</h2>
148
+
149
+ test
150
+
151
+ <h3>h-1-1</h3>
152
+
153
+ test
154
+
155
+ <h3>h-1-2</h3>
156
+
157
+ test
158
+
159
+ <h2>h-2</h2>
160
+
161
+ test
162
+
163
+ <h3>h-2-1</h3>
164
+
165
+ test
166
+
167
+ <h3>h-2-2</h3>
168
+
169
+ test
170
+
171
+ <h3>h-2-2</h3>
172
+
173
+ test
174
+
175
+ <h2>h-3</h2>
176
+
177
+ ```

1

chousei

2019/10/09 02:50

投稿

yambejp
yambejp

スコア116694

test CHANGED
@@ -25,6 +25,8 @@
25
25
  switch(x.nodeName){
26
26
 
27
27
  case "H2":
28
+
29
+ /* h2特有の処理がないので空 */
28
30
 
29
31
  break;
30
32