1

次の表があります。 ここに画像の説明を入力してください

列ヘッダーから都市名を削除して、一番上に配置したいと思います。次のように: ここに画像の説明を入力してください

都市名の列はコードに動的に追加され、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">
        &nbsp;
    </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>
4

2 に答える 2

0

を変更する必要があります

<th>'s

<td>

まず、その行にクラスとスタイルを適切に指定して、必要なヘッダーのように見せます

<tr class="NewClass" style="background-color: buttonface;">
    <td scope="col">
        &nbsp;
    </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>&nbsp</th><th>London</th>...');

});
于 2013-02-11T15:55:00.200 に答える
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">&nbsp;</th><th colspan="2">' + city1 + '</th><th colspan="2">' + city2 + '</th></tr></thead>');

        });
});
于 2013-02-11T16:31:08.163 に答える