搜索时忽略的文本-datatable



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

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

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

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

Hiya工作演示:http://jsfiddle.net/Gnazp/5/

搜索隐藏在表显示中的foobar1或foobar2等,但它们是列的一部分,正如您在jsfiddle代码中看到的那样。

你可以阅读代码中的注释,但本质上,代码所做的技巧是首先将数据与过滤器绑定,这样过滤器就可以获得有关全文的信息,然后截断字符串,所以它看起来就像你想要的那样:(如果你在过滤之前截断字符串,它会忘记你在子字符串中得到的数据,希望示例代码在jsfiddle中表现得更好)

注意:请让我知道我可以在我的帖子中复制粘贴所有代码。

解释

在这种情况下:

<td class="truncatethis">test yes you can, foobar foonewbar.</td>

仅在数据表屏幕上显示:test yes y,但如果您搜索foobar,它将为您提供正确的结果。

为了显示截断的屏幕,我在调用过滤器后调用了子字符串方法:在jsfiddle:底部查找代码

$(".truncatethis").each(function(){
    if($(this).text().length > 10){
               //alert($(this).html());
               $(this).html($(this).text().substring(0 , 10));
        }
});​

希望这有帮助,干杯!

最新更新