jQuery dataTable自定义排序拾取OLD HTML?

时间:2011-05-26 12:20:06

标签: javascript jquery datatable

我在dataTable上有这个自定义排序器:

jQuery.fn.dataTableExt.oSort['abbr-date-asc']  = function(a,b) { 
  var x = a.match(/abbr="(.*?)"/)[1]; 
  var y = b.match(/abbr="(.*?)"/)[1]; 
  return ((x < y) ? -1 : ((x > y) ?  1 : 0)); 
};

当我进入调试器时,A变量中的内容是OLD HTML,即首次绘制页面时的内容。在绘制页面之后并在执行此代码^^之前的onReady函数中,我将表格中的TDS重绘为不同的HTML,我希望此自定义排序器可以选取。它正在拾起旧东西。有什么想法吗?

编辑:这是HTML

<span abbr="">     
    <span class="localtimeUTC" style="display: none;">Dec 03, 2011</span>
    <span class="localtimeUTCabbr" style="display: none;">2011-12-03</span>   
</span>

当我想对其进行排序时,这是点击页面上的HTML:

<span abbr="2011-12-03">Dec 03, 2011</span>

它正在拿起原件。我尝试在表定义中使用bUseRendered:false,没有骰子。我尝试将sort函数转换为闭包,没有骰子。

  jQuery('#my_table').dataTable( { 
    "bJQueryUI": true, 
    "bAutoWidth": false, 
    "bUseRendered" : false, 
    "aoColumns" : [ 
    { sWidth: '5%', bSortable: false, bSearchable: false }, 
    { sWidth: '35%' }, 
    { sWidth: '15%' }, 
    { sWidth: '15%', sType: 'abbr-date', bSortDataType: "abbr-date" }, 
    { sWidth: '30%', bSortable: false, bSearchable: false } 
    ], 
}).show();

1 个答案:

答案 0 :(得分:0)

好的,我找到了答案:我没有正确使用DataTable。我在DataTable之外使用我自己的JS重新渲染TD,但是使用了

的组合

fnRender bUseRendered:false 萤火虫

我能够返回当前正确的HTML。事实证明,默认情况下,DataTable会保留原始表的缓存,并且通过使用这两件事我可以获得当前的HTML。