<div class="container">
<input type="text" id="searchInput" class="form-control mb-3" placeholder="Search model/frequency/voltage...">
<div class="table-container">
<table class="table table-striped table-bordered">
<thead class="table-dark">
<tr>
<th class="sortable-th" data-sort="model">Model</th>
<th class="sortable-th" data-sort="frequency">Frequency(GHz)</th>
<th class="sortable-th" data-sort="insertionLoss">Insertion Loss(dB)</th>
<th class="sortable-th" data-sort="iso">DC-RF ISO.(dB)TYP</th>
<th class="sortable-th" data-sort="vswr">VSWR</th>
<th class="sortable-th" data-sort="voltage">Voltage(V)</th>
<th class="sortable-th" data-sort="current">Current(mA)</th>
<th>Spec</th>
</tr>
</thead>
<tbody id="productTableBody">
<tr><td>LWMBT-30K27G</td><td>30KHz-27</td><td>2.2</td><td>40</td><td>1.7</td><td>50</td><td>-</td><td>-</td></tr>
<tr><td>LWMBT-100K18G</td><td>100KHz-18</td><td>2</td><td>35</td><td>1.5</td><td>18</td><td>700</td><td>-</td></tr>
<tr><td>LWMBT-1M3G</td><td>1MHz~3</td><td>0.8</td><td>30</td><td>1.3</td><td>+12</td><td>300</td><td>-</td></tr>
<tr><td>LWMBT-3M10G</td><td>3MHz-10</td><td>-</td><td>55</td><td>1.5</td><td>50</td><td>600</td><td>-</td></tr>
<tr><td>LWMBT-10M6G</td><td>10MHz -6</td><td>0.5</td><td>-</td><td>-</td><td>50</td><td>-</td><td>-</td></tr>
<tr><td>LWMBT-10M18G</td><td>10MHz~18</td><td>1</td><td>30</td><td>1.5</td><td>+12</td><td>300</td><td>-</td></tr>
<tr><td>LWMBT-10M40G</td><td>10MHz~40</td><td>2</td><td>30</td><td>2</td><td>+12</td><td>300</td><td>-</td></tr>
<tr><td>LWMBT-05120</td><td>0.5-12</td><td>1.5</td><td>-</td><td>1.7</td><td>100</td><td>-</td><td>-</td></tr>
<tr><td>LWMBT-2G18G</td><td>2~18</td><td>1</td><td>30</td><td>1.6</td><td>+12</td><td>300</td><td>-</td></tr>
<tr><td>LWMBT-2535-10A</td><td>2.5~3.5</td><td>0.5</td><td>30</td><td>1.3</td><td>+25</td><td>10A</td><td>-</td></tr>
<tr><td>LWMBT-14G16G-5A</td><td>14~16</td><td>0.8</td><td>30</td><td>1.5</td><td>+28</td><td>5.5A</td><td>-</td></tr>
</tbody>
</table>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script>
const originalData = Array.from(document.querySelectorAll('#productTableBody tr'));
document.getElementById('searchInput').addEventListener('input', e => {
const term = e.target.value.toLowerCase();
document.querySelectorAll('#productTableBody tr').forEach(row =>
row.style.display = row.textContent.toLowerCase().includes(term) ? '' : 'none'
);
});
let sortDir = {};
document.querySelectorAll('.sortable-th').forEach(th => {
th.addEventListener('click', function() {
const key = this.getAttribute('data-sort');
sortDir[key] = sortDir[key] === 'asc' ? 'desc' : 'asc';
const dir = sortDir[key];
const rows = Array.from(document.querySelectorAll('#productTableBody tr')).sort((a, b) => {
let aVal = a.children[Array.from(this.parentElement.children).indexOf(this)].textContent.trim();
let bVal = b.children[Array.from(this.parentElement.children).indexOf(this)].textContent.trim();
if (!isNaN(parseFloat(aVal.replace(/[^\d.-]/g, ''))) && !isNaN(parseFloat(bVal.replace(/[^\d.-]/g, '')))) {
aVal = parseFloat(aVal.replace(/[^\d.-]/g, ''));
bVal = parseFloat(bVal.replace(/[^\d.-]/g, ''));
return dir === 'asc' ? aVal - bVal : bVal - aVal;
}
return dir === 'asc' ? aVal.localeCompare(bVal) : bVal.localeCompare(aVal);
});
document.getElementById('productTableBody').innerHTML = '';
rows.forEach(row => document.getElementById('productTableBody').appendChild(row));
});
});
</script>