Iniciante em jquey

30 views
Skip to first unread message

Thiago lourenço

unread,
Aug 15, 2017, 11:31:45 AM8/15/17
to jQuery (Brasil)
Galera sou novo na área, estou tentando fazer um filtro que ao digitar no campo de busca deve se achar o que foi digitado, nessa página em questao - http://www.enap.gov.br/web/pt-br/perguntas-frequentes 

Eu nao tenho acesso ao código no momento, estou fazendo pelo console,  entao estou inspecionando a pagina e dentro do campo de busca adiciono o id="teste" , e fiz esse script :



$(function(){
    $("#teste").keyup(function(){
        var texto = $(this).val();      
        $(".taglib-header").each(function(){
            if($(this).text().indexOf(texto) < 0 || this.nextElementSibling.text().indexOf(texto) < 0)
               $(this).css("display", "none");
        });
    });
});

O problema que a minha logica nao acha a palavra certa de acordo com o que foi pesquisado ... é gostaria de saber se é possível achar a palavra dentro do collapse da página ? 

alguém poderia me ajudar a entender onde estou errando. Muito obrigado.

Miguel Pragier

unread,
Aug 15, 2017, 12:18:03 PM8/15/17
to jque...@googlegroups.com
Oe, Thiago.

Não estou certo de haver entendido sua dúvida, mas dê uma olhada nessa lib: https://haroen.me/holmes/

Dado um termo de busca, e uma classe ( a classe de seus itens listados ), esse componente deixa visíveis apenas aqueles com matching.

...Ou entendi errado?
--
--
Grupo de jQuery Brasil.
 
REGRAS: https://docs.google.com/document/d/1VfvTDmeHTSj-L5ouZJjQQ4OkjTCU1Hr2XtPYBNGVHH4/edit
 
USE O JSBIN.COM / JSFIDDLE.NET PARA CÓDIGOS.
 
Email: jque...@googlegroups.com
Biba: jquery-br+unsubscribe@googlegroups.com
Site: http://groups.google.com/group/jquery-br?hl=pt-BR

---
Você recebeu essa mensagem porque está inscrito no grupo "jQuery (Brasil)" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jquery-br+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Gabriel de Paula

unread,
Aug 15, 2017, 5:00:13 PM8/15/17
to jquery-br
Cara, da uma olhada nesse exemplo que eu fiz, ta simples, mas da pra vc ter uma noção: https://jsfiddle.net/6nfrj8oj/

Gabriel de Paula

unread,
Aug 15, 2017, 5:54:04 PM8/15/17
to jquery-br
Cara, fiz uma revisao usando o contains do jquery, ficou bemmmm melhor hehe, da uma olhada!

Miguel Pragier

unread,
Aug 15, 2017, 8:26:10 PM8/15/17
to jque...@googlegroups.com

Thiago lourenço

unread,
Aug 17, 2017, 11:57:50 AM8/17/17
to jQuery (Brasil)
Galera eu fiz esse script , mas o problema que ao digitar uma palavra especifica ele tá achando algumas palavras dentro do collpse... to errando em algum lugar na minha logica.   se alguém puder me ajudar , só jogar o codigo no console do portal  http://www.enap.gov.br/web/pt-br/perguntas-frequentes 



jQuery.expr[':'].Contains = function(a, i, m) {
  return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0;
};

jQuery.expr[':'].Contains = function(a, i, m) {
  return jQuery(a).text().toUpperCase()
     .indexOf(m[3].toLowerCase()) >= 0;
};




function filterText(keyword) {
 
  keyword.on('keyup', function(){
     var value = $(this).val();
     console.log(value.length);
     
     if (value.length > 0 && value.trim() !== "") {
       

       var $content = $(".asset-full-content.show-asset-title");
       $content.each(function () {
           $(this).css("display", "block");
       });

       var $questions = $(".asset-content.journal-content-article.perguntas-frequentes.painel-faq.panel-heading.panel-title");
       
       $questions.each(function() {
           $(this).css("display", "none");
       });

       $(".painel-faq").hide();
       $(".taglib-header").show();
       
       var $title = $(".taglib-header:contains(" + value + ")");
       var $questions = $(".painel-faq:contains(" + value + ")");

       $title.each((index) => {
          $title[index].style.display = 'block';
       });

       $questions.each((index) => {
           $questions[index].style.display = 'block';
       });

       $title.show();
       $questions.show();

$('.show-asset-title').filter(function() {
 return $(this).find('.painel-faq').css('display') == 'none';
}).hide();

$('.show-asset-title').filter(function() {
  return $(this).find('.painel-faq').css('display') == 'none';
}).prev().hide(); 

     } 

       else {
       $(".painel-faq").show();
       $(".taglib-header").show();
     }

  });
}

var keyword = $("input[name='_3_keywords']");

filterText(keyword);


Site: http://groups.google.com/group/jquery-br?hl=pt-BR

---
Você recebeu essa mensagem porque está inscrito no grupo "jQuery (Brasil)" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jquery-br+...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

Site: http://groups.google.com/group/jquery-br?hl=pt-BR

---
Você recebeu essa mensagem porque está inscrito no grupo "jQuery (Brasil)" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jquery-br+...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

Site: http://groups.google.com/group/jquery-br?hl=pt-BR

---
Você recebeu essa mensagem porque está inscrito no grupo "jQuery (Brasil)" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jquery-br+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages