隨著Web應用的普及,對於客戶端的回應更加及時的要求越來越高,簡單的頁面互動已經無法滿足大眾的需求。這時,jQuery這個JavaScript函式庫就應運而生。在多數情況下,如果需要在頁面中進行資料的增刪改查等操作,jQuery是個非常便捷的選擇。下面我們就來討論如何使用jQuery實作增刪改查功能。
一、頁面準備工作
在HTML頁面上,需要先準備增刪改查所需的元素,如下所示:
<!DOCTYPE html> <html> <head> <title>jQuery增删改查</title> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="./css/styles.css"> <script src="https://cdn.bootcss.com/jquery/3.5.1/jquery.min.js"></script> <script src="./js/jquery_method.js"></script> </head> <body> <h1>jQuery增删改查</h1> <form id="add_form"> <label for="add_name">名称:</label> <input type="text" id="add_name" name="name" required><br> <label for="add_age">年龄:</label> <input type="number" id="add_age" name="age" required><br> <button type="submit" id="add_btn">添加</button> </form> <table id="table" border="1"> <tr> <th>ID</th> <th>名称</th> <th>年龄</th> <th>操作</th> </tr> </table> </body> </html>
其中,包含了表單元素和資料表格,以及jQuery的引用和自訂的JavaScript檔案。
二、新增資料
使用jQuery新增資料時,需要在HTML頁面中定義表單並加上提交按鈕。並在JavaScript中(通常為jQuery_method.js)編寫事件監聽器,以取得表單的資料並將其新增至表格中。程式碼如下所示:
$(document).ready(function () { // 监听添加操作 $('#add_btn').on('click', function (e) { e.preventDefault(); // 阻止表单默认提交行为 const name = $('#add_name').val(); const age = $('#add_age').val(); addData(name, age); }); }); function addData(name, age) { // 构造表格行 const tr = $('<tr>'); tr.append(`<td id="id_${name}"></td>`) .append(`<td>${name}</td>`) .append(`<td>${age}</td>`); // 构造表格行中的操作列 const td = $('<td>'); const btn_update = $('<button>修改</button>'); const btn_delete = $('<button>删除</button>'); btn_update.on('click', function () { updateData(name); }); btn_delete.on('click', function () { deleteData(name); }); td.append(btn_update).append(btn_delete); tr.append(td); // 添加到表格中 $('#table').append(tr); // 分配ID const id = $('#table tr').length; $(`#id_${name}`).html(id); }
以上程式碼中,我們使用jQuery監聽表單的提交按鈕,取得表單中輸入的數據,並使用在最後一個td
元素中新增了兩個button元素,一個用於修改數據,一個用於刪除數據。函數addData()
用於將資料新增至表格中,並給每行資料指派一個ID。
三、查詢資料
查詢資料可以直接操作表格元素來實現。以查詢某個姓名為例:
function queryData(name) { const tr = $(`#table tr td:nth-child(2):contains(${name})`).parent(); return tr; }
以上程式碼中,我們使用jQuery的選擇器語法,選擇所有包含指定姓名的所有行數據,並透過.parent()
方法傳回其所在的tr
元素。
四、修改資料
要修改數據,首先需要查詢需要修改的數據,接著將其展示在一個模態框上(通常為一個表單),等待使用者輸入需要修改的值和提交修改的資料。在新增關閉模態框的事件監聽器後,根據使用者輸入的值,在表格中更新資料。程式碼如下所示:
function updateData(name) { const tr = queryData(name); const old_name = tr.find('td').eq(1).text(); const old_age = tr.find('td').eq(2).text(); const $form_update = $(` <form> <label for="update_name">名称:</label> <input type="text" id="update_name" name="update_name" value="${old_name}" required><br> <label for="update_age">年龄:</label> <input type="number" id="update_age" name="update_age" value="${old_age}" required><br> <button type="submit">修改</button> <button type="button" id="close_btn">关闭</button> </form> `); $('#table').after($form_update); $form_update.on('submit', function (e) { e.preventDefault(); const new_name = $('#update_name').val(); const new_age = $('#update_age').val(); tr.find('td').eq(1).text(new_name); tr.find('td').eq(2).text(new_age); tr.attr('id', `id_${new_name}`); $form_update.remove(); }); $('#close_btn').on('click', function () { $form_update.remove(); }); }
以上程式碼中,我們使用jQuery選擇器語法,選擇需要修改的數據,並給其一個ID。然後透過彈出模態框的方式,將需要修改的資料展示給用戶,讓用戶進行修改。修改完畢後,重新使用jQuery尋找該行,並更新表格中的資料。對於關閉按鈕的操作,也是透過關閉模態框的方式來實現。
五、刪除資料
對於刪除數據,還是需要透過模態框的方式,將需要刪除的資料展示給用戶,接著監聽刪除按鈕上的點擊事件,並在表格中刪除該行。程式碼如下所示:
function deleteData(name) { const tr = queryData(name); const $form_delete = $(` <form> <label> 您确定要删除名称为 <strong>${name}</strong> 的数据吗? </label> <button type="submit">确定</button> <button type="button" id="close_btn">取消</button> </form> `); $('#table').after($form_delete); $form_delete.on('submit', function (e) { e.preventDefault(); tr.remove(); $form_delete.remove(); }); $('#close_btn').on('click', function () { $form_delete.remove(); }); }
以上程式碼中,我們使用jQuery的選擇器語法,選擇需要刪除的數據,並透過彈出模態框的方式將需要刪除的資料展示給使用者。在使用者點擊了確定後,將該行資料從表格中刪除。對於取消按鈕的操作,依然是關閉模態框。
六、總結
透過以上程式碼,我們可以發現,使用jQuery實作增刪改查非常容易。在頁面準備完成後,使用jQuery的選擇器語法即可選擇需要操作的DOM元素,並使用jQuery的事件監聽器來處理對應的事件。同時,jQuery的簡潔程式碼也帶來了很大的便利。在不需要涉及複雜邏輯的增刪改查功能上,使用jQuery是個非常不錯的選擇。
以上是jquery做增刪改查的詳細內容。更多資訊請關注PHP中文網其他相關文章!