0

ヘッダーとして月を持つテーブルがあります。月をクリックすると、対応するヘッダーのすべての tds に週が表示されます。これにはトグルを使用しています。新しいヘッダーをクリックしたときに、他の要素を元に戻すにはどうすればよいですか?

ここにフィドルがあります。ここでは、最初のクリックの後、ジョブを実行するのに 2 回のクリックが必要です。何がうまくいかないのですか?これを行うための他の簡潔な方法はありますか。

4

3 に答える 3

1

このようなもの?

   $(document).ready(function() {
    $('th').click(

    function() {
        // hide all expanded
        $('#ex td #td_data').show();
        $('#ex td #o_data').hide();

        // show only corresponding weeks
        $('#ex td:nth-child(' + ($(this).index() + 1) + ')').each(function(index) {
            $(this).find('#td_data').hide();
            $(this).find('#o_data').show();
        });

    });

});​

編集:

@サミ-私はあなたの要件を今得ていると思います...

ここでmodifieフィドルを確認してください-http ://jsfiddle.net/johnbk/JYkS6/

->#o_dataのcssを削除しました

->各要素のIDは一意である必要があります-代わりにこれをクラスに変更しました

->上記のコードを以下のように変更しました

$('.o_data').hide();
$('.td_data').show();
$('th').click(

function() {
    var id = $(this).index() + 1;

     //loop through corresponding tds and display data
    $('#ex td:nth-child(' + id + ')').each(function(index) {
        $(this).find('.td_data').toggle();
        $(this).find('.o_data').toggle();
    });   

     //reset everything else
    $('#ex td').not(':nth-child(' + id + ')').each(function(index) {
        $(this).find('.td_data').show();
        $(this).find('.o_data').hide();
    });   

});​
于 2012-05-21T06:10:24.923 に答える
0
$('th').click(function(){
    var i = $('th').index(this);
    $('tr').each(function(index){
        var x = $(this).children('td').eq(i).find('div').eq(0);
        var y = $(this).children('td').eq(i).find('div').eq(1);
        $(x).toggle();
        $(y).toggle();
    });
});
​

http://jsfiddle.net/57BmW/7/

于 2012-05-21T06:10:16.733 に答える
0

http://jsfiddle.net/aKPDT/2/

JavaScript

$(document).ready(function(){
    $("th").click(function(){
        var myClass = $(this).attr("class");
          $(".col"+myClass).toggle();
    });
});

HTML

<table id='ex' border='1'>
            <thead>
                <tr>
                    <th  class="1">Jan</th>
                    <th  class="2">Feb</th>
                </tr>
            </thead>

            <tbody>
                <tr>
                    <td>
                        <div id="td_data">#11</div>
                        <div id="o_data" class="col1">
                            <span>Week1</span><span>Week2</span><span>Week3</span><span>week4</span>
                        </div>                        
                    </td>
                    <td>
                        <div id="td_data">#12</div>
                        <div id="o_data" class="col2"><span>Week1</span><span>Week2</span><span>Week3</span><span>week4</span></div>                        
                    </td>
                </tr>
                <tr>
                    <td>
                        <div id="td_data">#21</div>
                        <div id="o_data" class="col1"><span>Week1</span><span>Week2</span><span>Week3</span><span>week4</span>
                        </div>                        
                    </td>
                    <td>
                        <div id="td_data">#22</div>
                        <div id="o_data" class="col2">
                            <span>Week1</span><span>Week2</span><span>Week3</span><span>week4</span></div>
                    </td>
                </tr>
            </tbody>

        </table>
于 2012-05-21T06:01:50.133 に答える