TransWikia.com

Encontrar e mostrar um objeto de um .json pelo id do elemento clicado - jquery

Stack Overflow em Português Asked by deleting on February 5, 2021

Como faço para procurar dentro de um json um objeto com um determinado id, esse processo deve ocorrer dentro de uma function $(document).on('click', 'li', function(){});, e o id a ser pesquisado vai ser o id do elemento li clicado, o resultado da pesquisa seria o retorno de todos os dados do elemento que possui o id do li clicado .

Bom acho que a explicação ta simples mas ta clara, desculpe eu não colocar código, na verdade eu quero ideias para que eu pesquise e aprende, se eu colocar o código aqui vou obter a resposta pronta, não é isso que eu quero, mas caso for necessário eu posto um código de exemplo aqui.

One Answer

Para saberes o ID do elemento clicado basta fazer var id = this.id;.

Se o JSON for uma array:

Neste caso tens de percorrer o array comparando o teu ID com a chave que precisas. No exemplo usei também a chave id. O .find() é util pois retorna o primeiro elemento da array que cumprir a verificação.

var json = [{id: 1}, {id: 2}];
$(document).on('click', 'li', function(){
    var id = this.id;
    var obj = json.find(function(_obj){
        return _obj.id == id;
    });
    console.log(obj);
});

Se o JSON for um Objeto:

Neste caso imagino que queiras o sub-objeto e a coisa fica ainda mais simples.

var json = {id1: {foo: 'bar'}, id2: {foo: 'baz'}};
$(document).on('click', 'li', function(){
    var id = this.id;
    var obj = json[id];
    console.log(obj);
});

Se esse JSON vier por exemplo por ajax podes fazer assim:

$(document).on('click', 'li', function(){
    var id = this.id;
    $.getJSON("../file.json", function(json){
        // aqui podes usar um dos meus exemplos com Array ou Objeto
        // usando a variável "json" da callback

    }); 
});

Answered by Sergio on February 5, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP