Не изменяя свой код, вы можете попробовать это. Это скроет столбцы, у которых нет совпадения, но не изменит их порядок. Он также скрывается, только если найдено два или более совпадения столбцов. По правде говоря, вы должны публиковать только те материалы, где вам нужна помощь в решении проблемы, которую вы уже предприняли, а не то, чтобы кто-то другой делал эту работу за вас.
<script type="text/javascript">/* <![CDATA[ */
function tableFilter()
{ // show / hide table data based in search filters
var loop=0, cnt=0, idx=[], obj, txt1=$("#to").val().toLowerCase(), txt2=$("#from").val().toLowerCase();
$("table:eq(0) tr.headers th").each(function(){ // for each header description
if ($(this).parents("table").length < 2) {
if (txt1 != "" && $(this).html().toLowerCase().indexOf(txt1) != -1) { cnt++; idx[loop] = true; }
if (txt2 != "" && $(this).html().toLowerCase().indexOf(txt2) != -1) { cnt++; idx[loop] = true; }
loop++;
}
});
if (txt1 != "" && txt2 != "" && cnt > 1) { // filter display of cells if 2 or more matches found
loop = 0;
$("table:eq(0) tr.headers th").each(function(){
if ($(this).parents("table").length < 2) {
$(this).css("display", (idx[loop]==true)? "" : "none"); // hide/show cell
loop++;
}
});
loop = 0;
$("table:eq(0) td").each(function(){
if ($(this).parents("table").length < 2) {
$(this).css("display", (idx[loop]==true)? "" : "none"); // hide/show cell
loop++;
}
});
}
else { $("table:eq(0) th, table:eq(0) td").css("display", ""); } // show all cells
}
$(document).ready(function(){
$("#to, #from").keyup(tableFilter);
});
/* ]]> */</script>