我的带有 javascript 的表格过滤器不起作用

Posted

技术标签:

【中文标题】我的带有 javascript 的表格过滤器不起作用【英文标题】:My table filter with javascript is not working 【发布时间】:2021-01-28 17:54:44 【问题描述】:

我正在使用 springboot 在 intellij 上做一个项目,并且我有一个动态表。我放了一个搜索框并添加了一个脚本,理论上它可以工作,但它没有。

这是我的带有输入框的表格:

<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names..">
<table id="tablePatients"  border="1px solid black" >
<thead>
<tr>
    <th>Id</th>
    <th>Nome</th>
    <th>Cognome</th>
</tr>
</thead>
<tbody id="mytable">
<tr th:each="patient : $allPatients">
    <td th:text="$patient.id">1</td>
    <td th:text="$patient.name">w</td>
    <td th:text="$patient.surname">e</td>
    <td> <a href="show?id=10" th:href="@show(idPatient=$patient.id , idDoctor=$doctor.id)"> show </a></td>
    <td> <a href="addPrescription?id=10" th:href="@newPrescription(idPatient=$patient.id , idDoctor=$doctor.id)"> add prescription </a></td>
</tr>
</tbody>

这是脚本:

<script>
$(document).ready(function()
    $("#myInput").on("keyup", function() 
        var value = $(this).val().toLowerCase();
        $("#myTable tr").filter(function() 
            $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
        );
    );
);

这些是我在头部导入的库:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

有人可以帮我理解我做错了什么吗?

【问题讨论】:

【参考方案1】:

您的脚本中的表格 ID 错误,试试这个:

$(document).ready(function()
    $("#myInput").on("input", function() 
        var value = $(this).val().toLowerCase();
        $("#mytable tr").filter(function() 
            if($(this).text().toLowerCase().indexOf(value) === -1)
              $(this).hide();
            else
              $(this).show();
            
        );
    );
);
<input type="text" id="myInput" placeholder="Search for names..">
<table id="tablePatients"  border="1px solid black" >
<thead>
<tr>
    <th>Id</th>
    <th>Nome</th>
    <th>Cognome</th>
</tr>
</thead>
<tbody id="mytable">
<tr th:each="patient : $allPatients">
    <td th:text="$patient.id">1</td>
    <td th:text="$patient.name">w</td>
    <td th:text="$patient.surname">e</td>
    <td> <a href="show?id=10" th:href="@show(idPatient=$patient.id , idDoctor=$doctor.id)"> show </a></td>
    <td> <a href="addPrescription?id=10" th:href="@newPrescription(idPatient=$patient.id , idDoctor=$doctor.id)"> add prescription </a></td>
</tr>
</tbody>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

【讨论】:

以上是关于我的带有 javascript 的表格过滤器不起作用的主要内容,如果未能解决你的问题,请参考以下文章

带有ajax的Django过滤器功能不起作用

UITableViewCell 样式字幕多行不起作用

使用带有 jquery 的按钮的内容过滤器仍然不起作用?

我的Android进阶之旅------&gt;Android中ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法

PHP-在表格的每一行中动态插入带有javascript的innerhtml

为啥我的带有“$(this).next”的 JavaScript/jQuery 脚本不起作用?