javascript - 从数据表中搜索

标签 javascript jquery datatables

https://datatables.net/reference/api/search()#Example

我使用上面的链接作为搜索示例,但我的设置完全不同。

<td>
    <div class="plCell_desktop">
        <input type="radio" class="" data-lnk_id="414107671" data-group="RUTH">
        <label for="414107671">RUTH</label>
    </div>
</td>

这是我表格的摘录。

唯一可见的数据位是“Ruth”。
但是当我搜索 say '76' 时,结果仍然会带回“Ruth”。
原因很可能是我在表格单元格中的信息比“Ruth”多得多。

好的,我的问题是。你能强制 DataTables 从单词的开头搜索吗?例如(输入“uth”不会带回“Ruth”,但“Ru”会,希望它有意义)。

你能用数据表做一种“innerHTML.val()”搜索吗?

最佳答案

Okay, so my question is. Can you force DataTables to search from the beginning of a word. e.g. ( enter "uth" will not bring back "Ruth", but "Ru" will, hope it makes sense ).

是的。预先创建一个自定义过滤器来执行这样的过滤。默认的“智能搜索”将被自定义过滤器否决,任何 future 的过滤都将通过它:

$.fn.dataTable.ext.search.push(function( settings, data, dataIndex ) {
   var term = $('.dataTables_filter input').val().toLowerCase()
   for (var i=0, l=data.length; i<l; i++) {
     if (data[i].toLowerCase().indexOf(term) == 0 ) return true
   }
   return false
})

演示 -> http://jsfiddle.net/qxcjzuxa/

您可能会注意到,让数据表过滤整体区分大小写非常容易(只是一个例子)。过滤器数组是一个 LIFO 结构,您可以在其中放置多个过滤器。如果您出于任何原因将动态禁用“单词开头”过滤,则只需通过 $.fn.dataTable.ext.search.pop() 即可删除过滤器。

关于javascript - 从数据表中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38762946/

相关文章:

javascript - QML:将 RichText 作为 PlainText 传递

javascript - 动态更新存储项

jquery - 如何使用 JQuery pdfHtml5 将整个 DataTable 在 pdf 中居中

javascript - shuffleJs 不工作

javascript - React 性能测量代码存在内部错误

php - 将部分高斯模糊应用于背景图像

javascript - javascript 函数上的 HTML 按钮调用不适用于 sqlite 数据库

javascript - highcharts 使用按钮销毁选定的组注释

jquery - 如何使用页脚回调对数据表中的某些行求和

javascript - VueJS Jquery 数据表集成 : Attach method to dynamic html element