Olá! Estou fazendo um campo de busca em uma tabela no qual eu posso digitar o nome da loja (primeira coluna) e é retornado todas as linhas que correspondem à busca.
Mas eu também gostaria que, caso eu digitasse o CEP, retornasse as linhas correspondentes a este CEP.
Já tentei diversas formas, mas ou ele retorna o resultado correspondente à primeira coluna, ou ele retorna apenas o correspondente à última coluna, que é onde está o Google Maps com a localização da loja.
Já tentei fazer 2 funções diferentes mas o "onclick" do botão pesquisar considera apenas a última função chamada, ignorando a primeira.
Meu código é esse:
function pesquisar() {
// Declaração de variáveis.
var input, filter, table, tr, td, i, txtValue;
input = document.getElementById("input");
filter = input.value.toUpperCase();
table = document.getElementById("table");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
if (td) {
txtValue = td.textContent || td.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
};
E esta é uma das formas que eu tenho tentado fazer funcionar como eu quero, mas não funciona:
function pesquisar() {
// Declaração de variáveis.
var input, filter, table, tr, td, i, txtValue;
input = document.getElementById("input");
filter = input.value.toUpperCase();
table = document.getElementById("table");
tr = table.getElementsByTagName("tr");
if (typeof input.value === 'string') {
// Busca todas as linhas da tabela e esconde aquelas que não correspondem à busca.
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
if (td) {
txtValue = td.textContent || td.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
} else {
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[2];
if (td) {
txtValue = td.textContent || td.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
};
Alguém poderia me dar uma luz? :)