Я хочу изменить фильтр начальной загрузки для поиска по нескольким ключевым словам.
В приведенном ниже примере вы можете искать только одно непрерывное ключевое слово, например, "john" или "doe. В то время как я ищунабрать "oh do" (или "do oh"), и он должен вернуть первую строку "john doe john@example.com".
Я искал другие примеры, такие как: это и это . Но я не могу заставить это работать, и первый пример довольно медленный по сравнению с примером, опубликованным выше ...
Мне удаетсячтобы понять, могу ли я как-то сделать это с помощью переключателя:
$(this).toggle($(this).text().toLowerCase().indexOf(value1) > -1 && $(this).text().toLowerCase().indexOf(value2) > -1)
, тогда он вернет результат, который я ищу, было бы легко, если бы это всегда было два ключевых слова, тогда это было бы прекрасно работать.Но в реальном сценарии, в более крупной таблице, мы никогда не сможем предсказать, сколько ключевых слов будет вводить пользователь, это может быть 4 или 5, или может быть 1 ... и быть новичком в кодировании и работали только вPython / Django не помогает понять и мodify этот код JQuery для достижения результата ...
есть ли кто-нибудь, кто может дать ему шанс?
$(document).ready(function(){
$("#myInput").on("keyup", function() {
var value = $(this).val().toLowerCase();
$("#myTable tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
});
});
});
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Filterable Table</h2>
<p>Type something in the input field to search the table for first names, last names or emails:</p>
<input class="form-control" id="myInput" type="text" placeholder="Search..">
<br>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Email</th>
</tr>
</thead>
<tbody id="myTable">
<tr>
<td>John</td>
<td>Doe</td>
<td>john@example.com</td>
</tr>
<tr>
<td>Mary</td>
<td>Moe</td>
<td>mary@mail.com</td>
</tr>
<tr>
<td>July</td>
<td>Dooley</td>
<td>july@greatstuff.com</td>
</tr>
<tr>
<td>Anja</td>
<td>Ravendale</td>
<td>a_r@test.com</td>
</tr>
</tbody>
</table>
<p>Note that we start the search in tbody, to prevent filtering the table headers.</p>
</div>
</body>
</html>