在使用 jQuery DataTables 插件时,如果你希望实现搜索两个关键字,并且这两个关键字之间的关系是 "OR"(即只要满足其中一个关键字就匹配),你可以通过自定义搜索功能来实现这一点。
DataTables 插件提供了一个 $.fn.dataTable.ext.search
数组,你可以向其中添加自定义的搜索函数。以下是一个示例代码,展示了如何实现这一功能:
html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DataTables OR Search</title>
<link rel="stylesheet" href="https://cdn.datatables.net/1.11.5/css/jquery.dataTables.min.css">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.datatables.net/1.11.5/js/jquery.dataTables.min.js"></script>
</head>
<body>
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tiger Nixon</td>
<td>System Architect</td>
<td>Edinburgh</td>
<td>61</td>
<td>2011/04/25</td>
<td>$320,800</td>
</tr>
<tr>
<td>Garrett Winters</td>
<td>Accountant</td>
<td>Tokyo</td>
<td>63</td>
<td>2011/07/25</td>
<td>$170,750</td>
</tr>
<!-- Add more rows as needed -->
</tbody>
</table>
<script>
$(document).ready(function() {
var table = $('#example').DataTable();
// Custom search function
$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex) {
var keywords = ['keyword1', 'keyword2']; // Replace with your keywords
var searchString = data.join(' ').toLowerCase();
var match = false;
for (var i = 0; i < keywords.length; i++) {
if (searchString.indexOf(keywords[i].toLowerCase()) !== -1) {
match = true;
break;
}
}
return match;
}
);
// To redraw the table and apply the new search
table.draw();
});
</script>
</body>
</html>
在这个示例中:
$('#example').DataTable()
初始化 DataTables。
$.fn.dataTable.ext.search.push
方法添加自定义搜索函数。这个自定义搜索函数会检查每一行的数据是否包含任意一个关键字(在这个例子中是 'keyword1'
或 'keyword2'
)。
table.draw()
方法来重新绘制表格并应用新的搜索条件。
你可以根据需要修改 keywords
数组中的关键字,以符合你的搜索需求。