I am currently working on filtering an HTML table using a search form. It's working great, but I'm facing an issue where the filtered elements are trying to fill the entire width of the table instead of maintaining their original width (which is 25% of the table's width, excluding the spaces between the cells).
function searchFilter () {
const input = document.getElementById('myInput');
const filter = input.value.toUpperCase();
const table = document.getElementById('tablaPiola');
const articule = table.getElementsByTagName('td');
for (i = 0; i < articule.length; i++) {
a = articule[i].getElementsByTagName("a")[0];
txtValue = a.textContent || a.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
articule[i].style.display = "";
} else {
articule[i].style.display = "none";
}
}
}
document.getElementById("filter-btn").addEventListener("click", searchFilter);
body {
background-color: black;
}
table
{border-spacing: 20px;
table-layout: fixed;
width: 600px;
margin: auto;
margin-top: 10px;}
td
{text-align: center;
border-radius: 10px;}
td a
{width: 100%;
display: block;
line-height: 50px;
text-decoration: none;
font-family: "Poppins";
font-weight: 700;
font-size: 12px;
color: white;}
.automatizaciones
{background-image: url("https://via.placeholder.com/100/0000FF/0000FF");
background-size: cover;}
.bpm_a_ms
{background-image: url("https://via.placeholder.com/100/0000FF/0000FF");
background-size: cover;}
.compresion
{background-image: url("https://via.placeholder.com/100/0000FF/0000FF");
background-size: cover;}
.compresion_multibanda
{background-image: url("https://via.placeholder.com/100/0000FF/0000FF");
background-size: cover;}
<input type="text" id="myInput">
<input type="button" id="filter-btn" value="Apply">
<table class="tabla_basico" id="tablaPiola">
<tr>
<td class="automatizaciones">
<div class="overlay_basico"><a href="/">AUTOMATIZACIONES</a></div>
</td>
<td class="bpm_a_ms">
<div class="overlay_intermedio"><a href="/">BPM A MS</a></div>
</td>
<td class="compresion">
<div class="overlay_basico"><a href="compresion.html">COMPRESIÓN</a></div>
</td>
<td class="compresion_multibanda">
<div class="overlay_intermedio"><a href="/">COMPRESIÓN MULTIBANDA</a></div>
</td>
</tr>
</table>