Ich frage mich, ob es eine Möglichkeit für diese Suchleiste gibt, die ich verwende, um mehrere Elemente anzuzeigen. Wie es jetzt ist, wenn ich nach "123" in einem Pool mit "321" "1234" "123" "12345" suche Der einzige angezeigte Wert wäre der erste: "1234". Ich möchte, dass alle Werte angezeigt werden, die meiner Suche entsprechen, daher wäre dies das korrekte Suchergebnis: "1234" "123" "12345".Wie mehrere Zellen in der Tabellensuche angezeigt werden
Jede Antwort wird geschätzt.
Hier ist der aktuelle Code, den ich habe:
var cells = document.querySelectorAll("#myTable td");
var search = document.getElementById("myInput");
search.addEventListener("keyup", function() {
if (search.value.length > 0 && search.value != '') {
for (var i = 0; i < cells.length; ++i) {
if (cells[i].textContent.toLowerCase().indexOf(search.value.toLowerCase()) === 0) {
cells.forEach(function(element) {
element.style.display = "none";
});
cells[i].style.display = "table-cell";
break;
} else {
cells.forEach(function(element) {
if (cells[i] !== element) {
element.style.display = "table-cell";
}
});
}
}
} else {
cells.forEach(function(element) {
if (cells[i] !== element) {
element.style.display = "table-cell";
}
});
}
});
<input id="myInput">
<table id="myTable">
<tr>
<td>321</td>
<td>123</td>
</tr>
<tr>
<td>1234</td>
<td>abc</td>
</tr>
<tr>
<td>12345</td>
<td>abcde</td>
</tr>
</table>
Das ist ein großer Test auf und es benutzen werden, aber wäre es möglich, zu machen, so dass die Suche in einer Art und Weise funktioniert, wenn ich „1“ geben würde es nur die Ergebnisse zeigen, dass Beginnen Sie mit 1, nicht die mit einer 1? – SchwiftyTV
Nur die -1 in eine 0 geändert, das wird genau das tun! – Mouser
Das funktioniert soweit für mein Projekt, aber eine letzte Sache. Wenn Sie nach "abcde" suchen, wird das Ergebnis angezeigt, kein Problem, aber wenn Sie bis "abc" zurückgehen, wird nur "abcde" angezeigt. Wäre es möglich, dies mit dem aktuellen Code zu beheben, den ich habe? – SchwiftyTV