先週、私は HTML、CSS、JavaScript を少し学び、JavaScript で jquery を使用して、追加、削除、変更の機能を備えた簡単なテーブル操作を完了しました。
表は 3 つの列に分かれており、最初の列は学生番号 (ID 番号)、2 列目は学生の名前、3 列目は学生の年齢です。名前と年齢のボックスにデータを入力し、[追加] をクリックしてデータを追加します (ID 番号は段階的に自動的に生成されます)。次に新しい名前と年齢を入力し、[編集] をクリックして変更します。削除する場合はIDを入力して「削除」をクリックするだけで指定した行が削除されます。
IDを入力すると、テーブルの上部が現在のテーブルの行数を更新し、名前と年齢の入力ボックスの内容も動的に更新します。基本的な操作性を実現したプログラムです。テーブルのヘッダーは CSS を使用して色制御されており、テーブルのコンテンツも CSS を使用して色付けされ、奇数行と偶数行に異なる色を設定します。これによりインターフェースがより美しくなります。
以下はスクリーンショットです:
完全なコードは次のとおりです (Win7+IE9 テストに合格):
//by MoreWindows (http://blog.csdn.net/MoreWindows) <html> <head> <script src="jquery-1.7.min.js"></script> <script> $(document).ready(function() { SetTableRowColor(); UpdataTableRowCount(); if ($.browser.msie) //判断是不是MS的ie浏览器 { $("#id").bind("propertychange", function(){IDInputChange();}); } else { document.getElementById("#id").addEventListener("input", IDInputChange, false); } }); </script> <script> //根据ID输入框的值取表格中对应内容并填充到姓名年龄的输入框中 function IDInputChange() { //根据id查找到指定行 var i=SearchIdInTable($("#Table tr"), $("#id").val()); if (i != -1) { //得到该行的数据 var name = $("#Table tr:eq(" + i + ") td:eq(1)").html(); var age = $("#Table tr:eq(" + i + ") td:eq(2)").html(); //将数据更新到对应的文本框中 $("#Name").val(name); $("#Age").val(age); } else { $("#Name").val(""); $("#Age").val(""); } } //在表格的第一列中查找等于指定ID的行 function SearchIdInTable(tablerow, findid) { var i; var tablerownum=tablerow.length; for (i=1; i<tablerownum; i++) if ($("#Table tr:eq(" + i + ") td:eq(0)").html() == findid) return i; return -1; } //用CSS控制奇偶行的颜色 function SetTableRowColor() { $("#Table tr:odd").css("background-color", "#e6e6fa"); $("#Table tr:even").css("background-color", "#fff0fa"); } //更新表格当前显示的行数 function UpdataTableRowCount() { $("#tableRowCount").html($("#Table tr").length - 1); } function IncTableRowCount() { var tc = $("#tableRowCount"); tc.html(parseInt(tc.html()) + 1); } function DecTableRowCount() { var tc = $("#tableRowCount"); tc.html(parseInt(tc.html()) - 1); } </script> <script> $(document).ready(function() { //增加 $("#AddBtn").click(function() { var id=parseInt($("#Table tr:last td:first").html()) + 1; var name = $("#Name").val() != "" ? $("#Name").val() : " "; var age = $("#Age").val() != "" ? $("#Age").val() : " "; //新增加一行 var appendstr = "<tr>"; appendstr += "<td>" + id + "</td>"; appendstr += "<td>" + name + "</td>"; appendstr += "<td>" + age + "</td>"; appendstr += "</tr>"; $("#Table").append(appendstr); IncTableRowCount(); SetTableRowColor(); }); //编辑 $("#EditBtn").click(function() { //根据id查找到指定行 var i=SearchIdInTable($("#Table tr"), $("#id").val()); if (i != -1) { //得到新内容 var name = $("#Name").val() != "" ? $("#Name").val() : " "; var age = $("#Age").val() != "" ? $("#Age").val() : " "; //修改该行的二列数据 $("#Table tr:eq(" + i + ") td:eq(1)").html(name); $("#Table tr:eq(" + i + ") td:eq(2)").html(age); //parseInt(age)也可以 } }); //删除 $("#DeleteBtn").click(function() { //根据id查找到指定行 var i=SearchIdInTable($("#Table tr"), $("#id").val()); if (i != -1) { //删除表格中该行 $("#Table tr:eq(" + i + ")").slideUp("slow"); $("#Table tr:eq(" + i + ")").remove(); DecTableRowCount(); SetTableRowColor(); } }); }); </script> </head> <body> <p>简单的表格操作,有增加、删除和修改功能。id输入框能动态响应输入</p> id:<input type="text" id="id" /> Name:<input type="text" id="Name" /> Age:<input type="text" id="Age" /> <input type="button" id="AddBtn" value="Add" /> <input type="button" id="EditBtn" value="Edit" /> <input type="button" id="DeleteBtn" value="Delete" /> <table id="Table" align="center" border="2" cellpadding="10" cellspacing="1" bordercolor="#FFAA00"> <caption style="font-size:15px">学生表<label id="tableRowCount"></label></caption> <th>id</th><th>Name</th><th>Age</th> <tr> <td>1</td> <td>MoreWindows</td> <td>24</td> </tr> <tr> <td>2</td> <td>MW</td> <td>19</td> </tr> </table> </body> </html> <!-- css控制表头的背景颜色 css 双重标签 派生选择器--> <style> #Table th { background-color:#7cfc00; }
以上がjQuery を使用して、テーブル内の奇数行と偶数行の追加、削除、変更、色の設定を行うの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。