回答編集履歴
3
sampe
answer
CHANGED
@@ -113,4 +113,7 @@
|
|
113
113
|
</tbody>
|
114
114
|
</table>
|
115
115
|
|
116
|
-
```
|
116
|
+
```
|
117
|
+
|
118
|
+
# sample
|
119
|
+
- [CodePen](https://codepen.io/yambejp/pen/wmjbWp)
|
2
追記
answer
CHANGED
@@ -58,4 +58,59 @@
|
|
58
58
|
}
|
59
59
|
});
|
60
60
|
});
|
61
|
+
```
|
62
|
+
|
63
|
+
# 複数列
|
64
|
+
複数列バージョンです
|
65
|
+
|
66
|
+
```javacript
|
67
|
+
$(function(){
|
68
|
+
$('#t1 tbody td').filter(function(){
|
69
|
+
return $(this).closest('tr').find('td').index(this)==0;
|
70
|
+
}).on('click',function(){
|
71
|
+
var list=$(this).siblings('td').map(function(x){return {idx:x+1,num:parseInt($(this).text())}}).get();
|
72
|
+
list.sort(function(x,y){
|
73
|
+
if(x["num"]==y["num"]) return 0;
|
74
|
+
return x["num"]>y["num"]?1:-1;
|
75
|
+
});
|
76
|
+
$(this).closest('table').find('tr').each(function(){
|
77
|
+
var self=$(this);
|
78
|
+
list.forEach(function(x){
|
79
|
+
self.find('td,th').eq(x["idx"]).clone().appendTo(self);
|
80
|
+
});
|
81
|
+
self.find('td,th').filter(':gt(0):lt('+list.length+')').remove();
|
82
|
+
});
|
83
|
+
});
|
84
|
+
});
|
85
|
+
```
|
86
|
+
```HTML
|
87
|
+
<table id="t1">
|
88
|
+
<thead>
|
89
|
+
<tr>
|
90
|
+
<th data-type="string">名前<span></span></th>
|
91
|
+
<th data-type="integer">国語<span></span></th>
|
92
|
+
<th data-type="integer">数学<span></span></th>
|
93
|
+
<th data-type="integer">保健<span></span></th>
|
94
|
+
<th data-type="integer">社会<span></span></th>
|
95
|
+
<th data-type="integer">美術<span></span></th>
|
96
|
+
<th data-type="integer">英語<span></span></th>
|
97
|
+
</tr>
|
98
|
+
</thead>
|
99
|
+
<tbody>
|
100
|
+
<tbody>
|
101
|
+
<tr class="dothesort">
|
102
|
+
<td>鈴木</td><td>12</td><td>19</td><td>25</td><td>25</td><td>89</td><td>25</td>
|
103
|
+
</tr>
|
104
|
+
<tr class="dothesort">
|
105
|
+
<td>高橋</td><td>25</td><td>89</td><td>25</td><td>25</td><td>89</td><td>25</td></tr>
|
106
|
+
</tr>
|
107
|
+
<tr class="dothesort">
|
108
|
+
<td>佐藤</td><td>60</td><td>987</td><td>89</td><td>25</td><td>89</td><td>25</td>
|
109
|
+
</tr>
|
110
|
+
<tr class="dothesort">
|
111
|
+
<td>山田</td><td>604</td><td>78</td><td>25</td><td>25</td><td>89</td><td>25</td>
|
112
|
+
</tr>
|
113
|
+
</tbody>
|
114
|
+
</table>
|
115
|
+
|
61
116
|
```
|
1
追記
answer
CHANGED
@@ -40,4 +40,22 @@
|
|
40
40
|
</tr>
|
41
41
|
</tbody>
|
42
42
|
</table>
|
43
|
+
```
|
44
|
+
|
45
|
+
# ちょっと改良
|
46
|
+
こちらのほうがちょっとjQueryらしいかもしれませんね
|
47
|
+
```javascript
|
48
|
+
$(function(){
|
49
|
+
$('#t1 tbody td').filter(function(){
|
50
|
+
return $(this).closest('tr').find('td').index(this)==0;
|
51
|
+
}).on('click',function(){
|
52
|
+
var t1=parseInt($(this).siblings().eq(0).text());
|
53
|
+
var t2=parseInt($(this).siblings().eq(1).text());
|
54
|
+
if(t1>t2){
|
55
|
+
$(this).closest('table').find('tr').each(function(){
|
56
|
+
$(this).find('td,th').eq(1).appendTo($(this));
|
57
|
+
});
|
58
|
+
}
|
59
|
+
});
|
60
|
+
});
|
43
61
|
```
|