我正在尝试使用选择输入DEMO筛选我的表
我的问题是我的内部<table>
有多个图像/子画面等<td>
,我希望数据表使用其中的<span class="hidden-val">
值。
例子:
<tr>
<td>
<span style="display:none" class="hidden-val">23</span>
<i class="my-sprite-abc>My Logo</i>
</td>
</tr>
我通过将字符串转换为DOM HTML然后获取来管理数据表以显示正确的选择输入值innerText
,但是我仍然难以解决这一问题column.search.draw()
,因为我不知道如何教数据表使用隐藏的span值。
$('#my-table').DataTable( {
initComplete: function () {
this.api().columns().every( function () {
var column = this;
var select = $('<select><option value=""></option></select>')
.appendTo( $(column.footer()).empty() )
.on( 'change', function () {
console.log($(this).val());
var val = $.fn.dataTable.util.escapeRegex(
$(this).val()
);
column
.search( val ? '^'+val+'$' : '', true, false )
.draw();
} );
column.data().unique().sort().each( function ( d, j ) {
var html_val = $.parseHTML(d)
//console.log(html_val);
if (html_val != null){ // check if html is not null
var new_d = $(html_val)[0].innerText // take first html object <span> in this case
select.append( '<option value="'+new_d+'">'+new_d+'</option>' )
}
} );
} );
}
} );
谢谢,如果您能帮助我!
您可以创建基于类型的搜索插件,从而hidden-val
仅对进行过滤:
jQuery.fn.dataTable.ext.type.search.hiddenVal = function(data) {
return $('<div>').append(data).find('.hidden-val').text()
}
并将其设置为type
具有的列hidden-val
:
...
columnDefs: [
{ type: "hiddenVal", targets: [0] } //fist column as example
],
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句