jQuery全選択反転クリック行背景色を変更
23205 ワード
私は先にCSSスタイルを出して、実はこれは直接無視することができます
ページHTML構造を見てみましょう
実装機能
1)行をクリックして背景色を変更
2)全選/反全選機能
PS:機能が簡単すぎて、出すのが耻ずかしいです.しかし、仕事中に重複コードを書くこともよくあります.考えてみてください.やはり貼ってください.
ついでに自分の少しの積極性を高めることもできます.Thx,that's all
後記:機能はすべて完成して、すでに再び編集して放しました
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
後記:機能はすべて完成して、すでに再び編集して放しました