在将数据添加到数据表 - http://www.datatables.net/之前,我将字符串的长度减少到20个字符。当我搜索数据表(通过在搜索框中键入)时,截断的数据不再可搜索。是否可以将截断的数据添加到数据表中,而不会导致数据表在搜索时忽略截断的文本。
这是用于向数据表添加数据的代码:
if(data.length > 20){
data= data.substring(0 , 20);
}
$('#myTable').dataTable().fnAddData( [
data
]
);
问题是截断的数据无法搜索。
答案 0 :(得分:2)
Hiya 工作演示:http://jsfiddle.net/Gnazp/5/
搜索隐藏在桌面显示器上的foobar1或foobar2等,但它们是列的一部分,正如您在jsfiddle代码中看到的那样。
您可以阅读代码中的注释,但基本上代码正在做的技巧是首先将数据与过滤器绑定,以便过滤器包含有关您的全文的信息,然后截断字符串,因此它显示为您想要的你会出现:(如果你在过滤之前截断字符串,它会忘记你在子字符串中得到的数据,希望示例代码能在jsfiddle中更好地发布)
注意:请告诉我,我可以在帖子中复制粘贴所有代码。
<强>解释强>
在这种情况下:
<td class="truncatethis">test yes you can, foobar foonewbar.</td>
仅在数据表屏幕上显示:test yes y
,但如果您搜索foobar
,则会显示正确的结果。
要显示截断的屏幕,我在调用过滤器后调用了substring方法:查找该jsfiddle底部的代码:
$(".truncatethis").each(function(){
if($(this).text().length > 10){
//alert($(this).html());
$(this).html($(this).text().substring(0 , 10));
}
});
希望这有帮助,干杯!