回答編集履歴
1
ついか
test
CHANGED
@@ -65,3 +65,105 @@
|
|
65
65
|
</table>
|
66
66
|
|
67
67
|
```
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
# 昇順/降順切り替え
|
72
|
+
|
73
|
+
```javascript
|
74
|
+
|
75
|
+
<style>
|
76
|
+
|
77
|
+
.asc:after{
|
78
|
+
|
79
|
+
font-size:0.7em;
|
80
|
+
|
81
|
+
content:"▲";
|
82
|
+
|
83
|
+
}
|
84
|
+
|
85
|
+
.desc:after{
|
86
|
+
|
87
|
+
font-size:0.7em;
|
88
|
+
|
89
|
+
content:"▼";
|
90
|
+
|
91
|
+
}
|
92
|
+
|
93
|
+
</style>
|
94
|
+
|
95
|
+
<script>
|
96
|
+
|
97
|
+
window.addEventListener('DOMContentLoaded', ()=>{
|
98
|
+
|
99
|
+
document.querySelector('.sort-table th:first-child').classList.add('asc');
|
100
|
+
|
101
|
+
document.querySelectorAll('.sort-table th').forEach(x=>{
|
102
|
+
|
103
|
+
x.addEventListener('click',()=>{
|
104
|
+
|
105
|
+
let y=document.querySelector('.sort-table th.asc,.sort-table th.desc');
|
106
|
+
|
107
|
+
if(x!==y) y?.classList.remove('asc','desc');
|
108
|
+
|
109
|
+
x.classList.toggle('desc',x.classList.contains('asc'));
|
110
|
+
|
111
|
+
x.classList.toggle('asc');
|
112
|
+
|
113
|
+
const idx=[...x.parentNode.children].indexOf(x);
|
114
|
+
|
115
|
+
const tbody=x.closest('table').querySelector('tbody');
|
116
|
+
|
117
|
+
[...tbody.querySelectorAll('tr')].sort((y,z)=>{
|
118
|
+
|
119
|
+
const ty=y.querySelector(`td:nth-child(${idx+1})`).textContent;
|
120
|
+
|
121
|
+
const tz=z.querySelector(`td:nth-child(${idx+1})`).textContent;
|
122
|
+
|
123
|
+
return (ty==tz?0:(ty>tz?1:-1))*(x.classList.contains('asc')?1:-1);
|
124
|
+
|
125
|
+
}).forEach(x=>tbody.appendChild(x));
|
126
|
+
|
127
|
+
});
|
128
|
+
|
129
|
+
});
|
130
|
+
|
131
|
+
});
|
132
|
+
|
133
|
+
</script>
|
134
|
+
|
135
|
+
<table class="sort-table">
|
136
|
+
|
137
|
+
<thead>
|
138
|
+
|
139
|
+
<tr>
|
140
|
+
|
141
|
+
<th>番号</th>
|
142
|
+
|
143
|
+
<th>名前</th>
|
144
|
+
|
145
|
+
<th>生年月日</th>
|
146
|
+
|
147
|
+
<th>成績</th>
|
148
|
+
|
149
|
+
</tr>
|
150
|
+
|
151
|
+
</thead>
|
152
|
+
|
153
|
+
<tbody>
|
154
|
+
|
155
|
+
<tr><td>1</td><td>田中太郎</td><td> 8月12日</td><td> 95点</td></tr>
|
156
|
+
|
157
|
+
<tr><td>2</td><td>鈴木一郎</td><td> 3月 3日</td><td>100点</td></tr>
|
158
|
+
|
159
|
+
<tr><td>3</td><td>佐藤二朗</td><td>12月12日</td><td> 75点</td></tr>
|
160
|
+
|
161
|
+
<tr><td>4</td><td>吉田三郎</td><td> 6月 6日</td><td> 60点</td></tr>
|
162
|
+
|
163
|
+
<tr><td>5</td><td>東川夏葉</td><td> 1月 4日</td><td> 80点</td></tr>
|
164
|
+
|
165
|
+
</tbody>
|
166
|
+
|
167
|
+
</table>
|
168
|
+
|
169
|
+
```
|