最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用JavaScript實現(xiàn)動態(tài)表格功能實例

 更新時間:2026年03月09日 10:58:43   作者:技術喵貓巷  
在現(xiàn)代網頁開發(fā)中,表格是展示數(shù)據(jù)的常用元素,無論是數(shù)據(jù)統(tǒng)計、信息展示還是數(shù)據(jù)錄入,表格都能以整齊的格式展示出大量信息,這篇文章主要介紹了利用JavaScript實現(xiàn)動態(tài)表格功能的相關資料,需要的朋友可以參考下

后臺列表頁最常見的需求:點擊表頭排序 + 一鍵全選。本文用原生js代碼實現(xiàn)零依賴方案,涵蓋 DOM 查詢、排序算法、事件代理三大核心技能。

效果速覽

一、核心思路

  1. 事件入口:為每個 <th> 綁定點擊,首列是復選框,直接 return
  2. 排序函數(shù):把 NodeList 轉成數(shù)組,利用 sort + localeCompare 處理中文
  3. 復選聯(lián)動:全選按鈕用事件冒泡阻止,單行用計數(shù)器實時同步

二、代碼拆解

1.元素骨架

<table class="table-container" width="400">
     <thead>
         <tr>
             <th>
                 <input class="checkAll" type="checkbox">
             </th>
             <th>編號</th>
             <th>姓名</th>
             <th>年齡</th>
             <th>職位</th>
         </tr>
     </thead>
     <tbody>
         <tr>
             <td>
                 <input type="checkbox">
             </td>
             <td>3</td>
             <td>王同學</td>
             <td>24</td>
             <td>C++程序員</td>
         </tr>
         <tr>
             <td>
                 <input type="checkbox">
             </td>
             <td>5</td>
             <td>張同學</td>
             <td>24</td>
             <td>WEB前端</td>
         </tr>
         <tr>
             <td>
                 <input type="checkbox">
             </td>
             <td>22</td>
             <td>瑪麗</td>
             <td>30</td>
             <td>測試員</td>
         </tr>
         <tr>
             <td>
                 <input type="checkbox">
             </td>
             <td>6</td>
             <td>艾倫</td>
             <td>21</td>
             <td>交互設計師</td>
         </tr>
         <tr>
             <td>
                 <input type="checkbox">
             </td>
             <td>17</td>
             <td>小明同學</td>
             <td>28</td>
             <td>PHP工程師</td>
         </tr>

     </tbody>
 </table>

2.排序邏輯

const arr = Array.prototype.slice.call(rows).sort((a, b) => {
  const textA = a.cells[index].innerText;
  const textB = b.cells[index].innerText;
  return index === 2 || index === 4
    ? textA.localeCompare(textB, 'zh')
    : Number(textA) - Number(textB);
});
arr.forEach(tr => tbody.appendChild(tr)); // DOM 移動,無需刪除再插入

3.復選聯(lián)動

// 全選
checkAll.onclick = e => {
  e.stopPropagation();
  checkOneList.forEach(cb => cb.checked = checkAll.checked);
};

// 單行
checkOneList.forEach(cb =>
  cb.onclick = () =>
    (checkAll.checked =
      Array.from(checkOneList).every(c => c.checked))
);

三、邊界與擴展

  • 排序狀態(tài)記憶:給 <th>data-order 實現(xiàn)升降切換
  • 多選過濾:把排序結果同步給 filter 即可實現(xiàn)搜索 + 排序
  • 鍵盤支持:keydown 監(jiān)聽 Enter 或 Space 觸發(fā)排序

到此這篇關于利用JavaScript實現(xiàn)動態(tài)表格功能的文章就介紹到這了,更多相關JS動態(tài)表格內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

宁陵县| 花垣县| 翁源县| 哈密市| 长治县| 托克逊县| 衡阳市| 汝城县| 道真| 兴海县| 清镇市| 石台县| 德昌县| 瓮安县| 安溪县| 合阳县| 西丰县| 遂平县| 班玛县| 崇明县| 江都市| 潼南县| 稻城县| 韶山市| 都昌县| 南丹县| 扎囊县| 明星| 峨眉山市| 孝昌县| 福州市| 巴林左旗| 肃宁县| 双桥区| 鄂托克前旗| 博爱县| 高密市| 渭源县| 福鼎市| 赤水市| 城固县|