首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

jQuery DataTables fnCreatedCell 回調函數五個參數詳細說明

     編輯:程式設計疑難解答

DataTables 的 fnCreatedCell 回調在單元格創建時觸發,常用於自定義單元格渲染。本文詳細說明其五個參數含義及典型用法。

參數列表

"fnCreatedCell": function(nTd, sData, oData, iRow, iCol) { ... }
參數類型含義
nTdNode當前單元格的 DOM 元素(原生 <td>),可直接操作樣式/屬性/事件。
sDataString | Number | ...該單元格原始數據值(對應 columns.data 返回的值)。
oDataObject整行的原始數據對象(數據源中的一項),可訪問其他列的值。
iRowInteger該單元格所在行的索引(0-based,經過排序/過濾後的顯示索引)。
iColInteger該單元格所在列的索引(0-based,對應 columns 定義順序)。

典型應用場景

1. 根據數值動態設置顏色

fnCreatedCell: function(nTd, sData, oData, iRow, iCol) {
    if (iCol === 3) { // 假設第4列是狀態
        $(nTd).css('color', sData === '失敗' ? 'red' : 'green');
    }
}

2. 綁定點擊事件獲取整行數據

fnCreatedCell: function(nTd, sData, oData, iRow, iCol) {
    if (iCol === 0) { // 第一列綁定點擊
        $(nTd).on('click', function() {
            console.log('行數據:', oData);
            console.log('行索引:', iRow);
        });
    }
}

3. 根據其他列值決定當前列渲染

fnCreatedCell: function(nTd, sData, oData, iRow, iCol) {
    if (iCol === 4 && oData.status === 'urgent') {
        $(nTd).addClass('highlight').attr('title', '緊急處理');
    }
}

注意事項

  • nTd 是原生 DOM,用 jQuery 包裹時用 $(nTd)。
  • iRow 是顯示索引,若需原始數據索引,可用 table.row(iRow).index()。
  • DataTables 1.10+ 建議使用 createdCell 選項(語法相同),fnCreatedCell 為舊版兼容寫法。
  • 大量 DOM 操作時考慮性能,可在 initComplete 中統一處理或使用 columns.render。

熟練掌握五個參數,能靈活實現單元格級的深度定制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved