我试图通过href值获得propper搜索,但当我点击每个值时,它会显示一个空白表,并且值的索引总是0。我几乎什么都试过了,但都没用。我认为主要问题在于脚本,因为它总是向我显示每个元素的空白索引。
有人能告诉我我缺了什么吗?
这是代码:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script> // This script is working
$(document).ready(function(){
$("#myInput").on("keyup", function() {
var value = $(this).val().toLowerCase();
$("#myTable tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
});
});
});
</script>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
.odd {
background: #5a95ee;
}
.even{
background: #7eb9e0;
}
</style>
</head>
<body>
<input id="myInput" type="text" placeholder="Search.." style="float: right; width: 500px;" value="">
<br><br>
<table>
<thead>
<tr>
<th>Predmet</th>
<th>Tip</th>
<th>Nastavnik</th>
<th>Grupe</th>
<th>Dan</th>
<th>Termin</th>
<th>Ucionica</th>
</tr>
</thead>
{% for raspored in rasporedi %}
<tbody id="myTable">
<tr class="{{ loop.cycle('odd', 'even') }}">
<td > {{raspored['predmet']}}</td>
<td>{{raspored['tip']}}</td>
<td >{{raspored['nastavnik']}}</td>
<td>{{raspored['grupe']}}</td> // Python list ( data from mongodb )
<td>{{raspored['dan']}}</td>
<td>{{raspored['termin']}}</td>
<td>{{raspored['ucionica']}}</td>
</tr>
</tbody>
{% endfor %}
</table>
<br> <br>
<table style="width: 400px;" style="margin:0 auto;">
<thead>
<tr >
<th>Nastavnik</th>
<th>Ucionica</th>
</tr>
</thead>
{% for raspored in dr %}
<tbody id="myTabledva">
<tr>
<td class="nastavnik {{ loop.cycle('odd', 'even') }}" > <a href="#" >{{raspored['nastavnik']}}</a></td>
<td class="ucionica {{ loop.cycle('odd', 'even') }}"> <a href="#" >{{raspored['ucionica']}}</a></td>
</tr>
</tbody>
<script> // Something is wrong with this script but i don't know what
$(document).on("click", ".nastavnik", function(){
var nastavnik = $("#myInput").val($(this).text());
$("#myTable tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(nastavnik) > -1 )
});
});
</script>
{% endfor %}
</table>
</body>
</html>
<script> // Something is wrong with this script but i don't know what
$(document).on("click", ".nastavnik", function(){
var nastavnik = $("#myInput").val($(this).text());
$("#myTable tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(nastavnik) > -1 )
});
});
</script>
您可能想要这样的东西:
$(document).on("click", ".nastavnik", function() {
let nastavnik = $("#myInput").val(); //<-- get, not set, the entere val
$("#myTable tr").show().filter(function() {
return $(this).text().toLowerCase().indexOf(nastavnik.toLowerCase()) == -1;
}).hide();
});
逻辑:
- 获取输入值
- 获取所有表行-默认情况下显示所有
- 将表行筛选为不包含输入搜索的行
- 隐藏那些行