jQuery全選択反転クリック行背景色を変更

23205 ワード

私は先にCSSスタイルを出して、実はこれは直接無視することができます
body{margin:0;padding:0;font-size:12px;font-family:    ;}

.datagrid{width:100%;}

.datagird tr th{background-color:#191970; font-size:14px;}

.datagrid tr th, .datagrid tr td{border:1px solid #ccc; border-collapse:collapse;}



/*       */

.table-row-selected{background:#fff68f;}

ページHTML構造を見てみましょう
<div id="page">

    <table class="datagrid" cellpadding="0" cellspacing="0">

        <thead>

            <tr>

                <th><input id="CheckAll" name="checkall" type="checkbox" /></th>

                <th>ID</th>

                <th>  </th>

                <th>   </th>

                <th>    </th>

            </tr>

        </thead>

        <tbody>

            <tr>

                <td align="center"><input type="checkbox" name="check" /></td>

                <td align="center" width="5%">1</td>

                <td></td>

                <td align="center" width="10%">internet</td>

                <td align="center" width="15%">2013-07-01</td>

            </tr>

            <tr>

                <td align="center"><input type="checkbox" name="check" /></td>

                <td align="center" width="5%">2</td>

                <td>   :       16     </td>

                <td align="center" width="10%">internet</td>

                <td align="center" width="15%">2013-07-01</td>

            </tr>

            <tr>

                <td align="center"><input type="checkbox" name="check" /></td>

                <td align="center" width="5%">3</td>

                <td>          ,      ?</td>

                <td align="center" width="10%">internet</td>

                <td align="center" width="15%">2013-07-01</td>

            </tr>

            <tr>

                <td align="center"><input type="checkbox" name="check" /></td>

                <td align="center" width="5%">4</td>

                <td></td>

                <td align="center" width="10%">internet</td>

                <td align="center" width="15%">2013-07-01</td>

            </tr>

        </tbody>

    </table>

</div>

実装機能
1)行をクリックして背景色を変更
2)全選/反全選機能
//             

$(".datagrid tbody tr").bind("click", function () {

    var oThis = $(this);

    if (oThis.hasClass("table-row-selected")) {

        oThis.removeClass("table-row-selected");

        oThis.children("td:eq(0)").children("input[name='check']").removeAttr("checked");

    } else {

        oThis.addClass("table-row-selected");

        oThis.children("td:eq(0)").children("input[name='check']").attr("checked", "checked");

    }



    var len = $("table.datagrid tbody").find("input[name='check']").length;

    var count = 0;

    $("table.datagrid").find("input[name='check']").each(function (i) {

        var That = $(this);

        if (That.prop("checked") == true) {

            count++;

        }

    });



    if (len == count) {

        $("input[name='checkall']").attr("checked", "checked");

    } else {

        $("input[name='checkall']").removeAttr("checked");

    }

});



//  

$("#CheckAll").bind("click", function () {

    var oThis = $(this);

    if (oThis.prop("checked") == true) {

        $("table.datagrid tbody").find("input[name='check']").attr("checked", "checked");

        $("table.datagrid tbody").find("input[name='check']").parents("tr").addClass("table-row-selected");

    } else {

        $("table.datagrid tbody").find("input[name='check']").removeAttr("checked");

        $("table.datagrid tbody").find("input[name='check']").parents("tr").removeClass("table-row-selected");

    }

});

 
PS:機能が簡単すぎて、出すのが耻ずかしいです.しかし、仕事中に重複コードを書くこともよくあります.考えてみてください.やはり貼ってください.
ついでに自分の少しの積極性を高めることもできます.Thx,that's all
 
後記:機能はすべて完成して、すでに再び編集して放しました