Ir ao conteúdo
  • Cadastre-se

Javascript Sistema de busca em tabela com js puro.


Ir à solução Resolvido por Diogou,

Posts recomendados

Oi, tenho um código de procura em tabela em tempo real, basicamente ele cria tr, e depois no input é filtrado.

 

Podem ver o código aqui:

http://jsfiddle.net/19scgzox

 

porém, o que eu quero fazer é um tipo de de "catalogo" de uma loja virtual.

Logo no começo do script tem:

var tbody = document.getElementById("tbody");
            var dados = [
                ["Tênis"],
                ["Mochila"],
                ["Blusa"],
                ["Bolsa"]
                
            ];

Se eu coloco, no lugar de um texto, por exemplo, eu coloco um ["<a href=#>Tênis</a>], todo o codigo para de funcionar (podem ver o erro no console).

Como eu resolvo este problema?

Link para o comentário
Compartilhar em outros sites

@showme No seu exemplo está faltando uma aspa. De qualquer forma, acho que não seja esse o problema.

 

Troquei o tênis por uma tag anchor e funcionou aqui... Da uma olhada e veja se você usou as aspas de maneira certa.

 

var tbody = document.getElementById("tbody");

var dados = [
  ["<a target='_blank' href='http://www.google.com'>Tênis</a>"],
  ["Mochila"],
  ["Blusa"],
  ["Bolsa"]
];

 

Dica: troque o GetelementById por QuerySelector, com isso você n precisa encher seu código de ID.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Solução

@makotsunami

 

Eu resolvi, tava até fazendo aqui pra ajudar a galera:

 

na linha 66:

for (var j = 0; j < td.length; j++){

É só colocar "1" no lugar do 0, depois na variável "dados", fica [ ["<codigo>", "camisa"], ["<codigo>", "blusa"]];

Ou seja, o input não vai ler o primeiro e não vai aparecer na pesquisa, vai ler a partir do 1. [0,1,2...];

 

Da pra colocar quantos textos quiser, mas na linha 53 tem que adicionar na var tr

"<td style='width: 30%;'>" + dados[i][0] + "</td>" +

e trocar o valor [0], pelo numero da pesquisa, no caso do exemplo acima, eu coloquei o código na posição [0] e os filtros de pesquisa do [1] pra frente, no caso ficaria:

"<td style='width: 30%;'>" + dados[i][0] + "</td>" + //Esse é o que o input não lê
"<td style='width: 30%; display: none;'>" + dados[i][1] + "</td>" + //a partir daqui o input lê

 

Não sei se ficou muito claro, mas tem aqui um exemplo funcionando:

https://jsfiddle.net/19scgzox/50/

 

ja estou fazendo sistema de fitro lateral pra essa busca, ai você faz div do jeito que quiser.

  • Curtir 2
  • Amei 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!