如何在表格filter中显示“No Record Found”meassage
我在两张桌子的基础上在我的桌子上使用filter。 filter正在工作但我想显示No Recod Found消息,如果没有值匹配。 这是一个示例演示:
$("#filter").click(function () { var tdScoring,tdEarning; var scoring=$("#scoring1").val(); var earning = $("#earning1").val(); table = document.getElementById("mastermindTable"); tr = table.getElementsByTagName("tr"); for (i = 0; i < tr.length; i++) { tdScoring = tr[i].getElementsByTagName("td")[4]; tdEarning = tr[i].getElementsByTagName("td")[3]; if (tdScoring || tdEarning) { if (tdScoring.innerHTML.indexOf(scoring) == 0 && tdEarning.innerHTML.indexOf(earning) == 0) { tr[i].style.display = ""; } else { tr[i].style.display = "none"; } } } });
Name Email Expertise Earning Scoring Status Ammar amr@gmail.com PHP 100 70 Active Arsnel ars@gmail.com Larave 150 90 Active Abeera abr@gmail.com CI 250 110 InActive
您还可以提及另一种过滤表并实现此目的的简单方法。 我只想用jQuery和JS没有插件来解决这个问题。
只需添加一个新的tr,其中包含No Record Found和display:none的消息。 jsfiddle在这里:
演示
JavaScript的
if(hidden_rows==rows){ for (i = 2; i < tr.length; i++) { tr[i].style.display = "none"; } document.getElementById('noRecordTR').style.display = ""; }
这很简单。 只需在FOR
function下添加此代码即可。
// end your for $('#mastermindTable tbody tr[data-no-results-found]').remove(); if($('#mastermindTable tbody tr:visible').length === 0) { $('#mastermindTable tbody').append('NO RESULTS FOUND '); }
来自原帖的JSFIDDLE
UPDATE
或者你可以编写/使用通用函数任何处理“没有找到行”消息的表。
function
$.fn.AddNoRowsFound = function() { if($(this).find('tbody tr:not([data-no-results-found]):visible').length > 0) { $(this).find('tbody tr[data-no-results-found]').hide(); } else { $(this).find('tbody tr[data-no-results-found]').show(); } };
你需要在init / page load上使用表调用函数。 然后,如果您有任何操作/filter,则只需将调用添加到侦听器中。
$(table_selector).AddNoRowsFound();
而且你还需要在表> body中添加带消息的行。
这对任何桌子来说都是通用的。
JSFIDDLE2
你有没有尝试在你的桌子后面写一个简单的div,内容为“No Recod Found message”并且没有显示? 如果你有结果 – >添加display none样式,否则 – >删除display none样式。