我有下表。
我想从列标题中删除城市名称并将其置于顶部。如下:
具有城市名称的列会动态添加到代码中,并且可以是任意数字,例如0,1,任意数字。
表结构是:
<table class="gvv1" cellspacing="0" rules="all" border="1" id="MainContent_gvActivities"
style="border-collapse: collapse;">
<tr style="background-color: buttonface;">
<th scope="col">
</th>
<th scope="col">
Cluster
</th>
<th scope="col">
Activity
</th>
<th scope="col">
Data
</th>
<th scope="col">
<b>London_Tasks</b>
</th>
<th scope="col">
<b>London_Achieved</b>
</th>
<th scope="col">
<b>Geneva_Tasks</b>
</th>
<th scope="col">
<b>Geneva_Achieved</b>
</th>
</tr>
<tr>
<td>
<input id="chkSelected_0" type="checkbox" />
</td>
<td style="width: 50px; white-space: nowrap;">
ER.
</td>
<td style="width: 50px; white-space: nowrap;">
Provision
</td>
<td style="width: 60px; white-space: nowrap;">
number
</td>
<td>
<input name="ctl00Activitiesl00" type="text" value="-1.00" />
</td>
<td>
<input name="ctl00Activitiesl01" type="text" value="-1.00" />
</td>
<td>
<input name="ctl00Activitiesl02" type="text" value="-1.00" />
</td>
<td>
<input name="ctl00Activitiesl03" type="text" value="-1.00" />
</td>
</tr>
<tr>
<td>
<input id="chkSelected_1" type="checkbox" />
</td>
<td style="width: 50px; white-space: nowrap;">
ER.
</td>
<td style="width: 50px; white-space: nowrap;">
support
</td>
<td style="width: 60px; white-space: nowrap;">
campaign (Numbers)
</td>
<td>
<input name="ctl0Activities200" type="text" value="-1.00" />
</td>
<td>
<input name="ctl0Activities201" type="text" value="-1.00" />
</td>
<td>
<input name="ctl0Activities202" type="text" value="-1.00" />
</td>
<td>
<input name="ctl0Activities203" type="text" value="-1.00" />
</td>
</tr>
</table>
答案 0 :(得分:0)
您需要更改
<th>'s
到
<td>
首先给该行一个类和样式,使其看起来像你想要的标题
<tr class="NewClass" style="background-color: buttonface;">
<td scope="col">
</td>
<td scope="col">
Cluster
</td>
<td scope="col">
Activity
</td>
<td scope="col">
Data
</td>
<td scope="col">
<b>London_Tasks</b>
</td>
<td scope="col">
<b>London_Achieved</b>
</td>
<td scope="col">
<b>Geneva_Tasks</b>
</td>
<td scope="col">
<b>Geneva_Achieved</b>
</td>
</tr>
当触发更改表的事件时,请使用.before
$('TriggerEntity').click(function(){
('.NewClass').before('<tr><th> </th><th>London</th>...');
});
答案 1 :(得分:0)
首先,jsFiddle:http://jsfiddle.net/52jZC/
这使用jQuery并将动态地使用具有类名gvv1
的任何相同结构的表。您可以根据自己的需要进行更改:
<script>
// This function was taking from here: http://stackoverflow.com/questions/2815683/jquery-javascript-replace-tag-type
(function($) {
$.fn.replaceTagName = function(replaceWith) {
var tags = [],
i = this.length;
while (i--) {
var newElement = document.createElement(replaceWith),
thisi = this[i],
thisia = thisi.attributes;
for (var a = thisia.length - 1; a >= 0; a--) {
var attrib = thisia[a];
newElement.setAttribute(attrib.name, attrib.value);
};
newElement.innerHTML = thisi.innerHTML;
$(thisi).after(newElement).remove();
tags[i - 1] = newElement;
}
return $(tags);
};
})(window.jQuery);
$(function() {
// This formats each table w/ the class 'gvv1' as specified in your question
$('.gvv1').each(function(i, v) {
city1 = $(this).find('th:eq(4)').text().split('_');
city1 = city1[0];
var city2 = $(this).find('th:eq(6)').text().split('_');
city2 = city2[0];
$(this).find('th:eq(4)').text('Tasks');
$(this).find('th:eq(5)').text('Achieved');
$(this).find('th:eq(6)').text('Tasks');
$(this).find('th:eq(7)').text('Achieved');
$(this).find('th').replaceTagName('td');
$(this).prepend('<thead><tr><th colspan="4"> </th><th colspan="2">' + city1 + '</th><th colspan="2">' + city2 + '</th></tr></thead>');
});
});