亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

過濾后,rowData 保留在第一條記錄上

過濾后,rowData 保留在第一條記錄上

素胚勾勒不出你 2021-08-20 17:55:27
使用數據表的過濾器框時,rowId保留在第一條記錄上,我不知道為什么。這是數據表(盡可能簡化):$.ajax({  url: 'process/getData.php',    type: 'POST',    data: data,    dataType: 'html',    success: function(data, textStatus, jqXHR){      var jsonObject = JSON.parse(data);       var table = $('#example1').DataTable({        "data": jsonObject,        "columns": [            {            "data": "MONDAY",            "fnCreatedCell": function (nTd, sData, oData, iRow, iCol)            {              $(nTd).html("<span class='checkMon'>+oData.MONDAY+</span>");            },            // columns for each work day          }        ],        "paging": false,        "scrollY": 730,        "scrollX": true,        "bDestroy": true,        "stateSave": true,        "autoWidth": true      });    },    error: function(jqHHR, textStatus, errorThrown) {      console.log('fail: '+ errorThrown);      return false;    }});在數據表之外,我有onclick事件處理程序:$('#example1').on('click', 'tr > td > .checkMon', function(e){  e.preventDefault();  var $dataTable = $('#example1').DataTable();  var tr = $(this).closest('tr');  var data = $dataTable.rows().data();  var rowData = data[tr.index()];  console.log(rowData.UID);});在過濾之前,當我單擊任何單元格時,控制臺會讀取正確的rowData.UID.問題是當我過濾并再次單擊單元格時,控制臺讀取第一行的rowData.UID.有誰知道為什么會發生這種情況以及如何解決它?
查看完整描述

1 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

如果您想要實現的只是登錄到UID源包含<span>您單擊的行的對象的控制臺屬性,則以下方法應該有效:


$('#example1').on('click', '.checkMon', function(e)

{

  e.preventDefault();

  const dataTable = $('#example1').DataTable();

  const rowData = dataTable.row($(this).closest('tr')).data();

  console.log(rowData.UID);

});

另外,請考慮使用ajax選項。這樣你就不需要浪費性能來破壞/重新創建你的表,這將使你的代碼更干凈、更安全。


查看完整回答
反對 回復 2021-08-20
  • 1 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號