搜索时忽略文本 - 数据表

时间:2012-04-02 20:35:59

标签: jquery datatables

在将数据添加到数据表 - http://www.datatables.net/之前,我将字符串的长度减少到20个字符。当我搜索数据表(通过在搜索框中键入)时,截断的数据不再可搜索。是否可以将截断的数据添加到数据表中,而不会导致数据表在搜索时忽略截断的文本。

这是用于向数据表添加数据的代码:

if(data.length > 20){
data= data.substring(0 , 20);
}
$('#myTable').dataTable().fnAddData( [
data            
]
); 

问题是截断的数据无法搜索。

1 个答案:

答案 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));
        }

});​

希望这有帮助,干杯!