Button Pai x Filho capturar o indice da linha

Caros(as), Eu tenho 6 registros na tabela pai x filho, e a ultima opção é um botão do tipo com uma função que deve carregar o indice da linha onde o botão foi clicado e carregar os valores de cada linha da tabela pai x filho clicada no botão, alguém sabe como por esse botão carregamos o indice para dentro da função para então fazer dessa forma. Quando o fluxo é tramitado e ficha salva o id do botao nao fica insere_1 ele fica somente insere, impossibilitando de passar o indice para a funcao que vai capturar o campo da linha clicada no botão no pai x filho.

Percebi que o botão sempre que avanço para etapa na qual onde será realizado o click no botão na qual preciso capturar o indice da linha da tabela pai x filho todos os botoes estão com o mesmo nome sem nenhum indice.

função a ser usada no botao.


cadastraFilialFornecedor: function(el) {


        var $this = this;
        $this.limparToast();
        $this.loading().show();
        var $campos = this.camposFmadFmid();

        var Indice =  $(el).attr('id').split('___');
        console.log(parTr);

        //Objeto campos FMAD/FMID
        var objCamposFilial = {
            solicitacao: $($campos.solicitacao).val(),
            solicitante: $($campos.solicitante).val(),
            solicitante_nome: $($campos.nome).val(),
            tipo_cadastro: $($campos.tipoCad).val(),
            origem_ecompras:                        $($campos.origCompras).val(),
}


<button id="insere" onclick="EnviaDados(this)"></button>

campo+index; campo2index;

O elemento button ou input type button nao recebem os id com os indices quando eles sao salvos.

Usa um campo tipo input que irá ter o indice ao gravar para obter essa informação e coloque bem acima do botão desejado. No exemplo, o campo seqTable é um campo filho e abaixo tem um botão. Ao clicar no botão aciona a função no qual obtenho o valor do indice.

function fnDetalharTable(botao) { var campo = $(botao).prev()[0].name; //Retorna o objeto acima do botao var indice = $(botao).prev()[0].name.substr($(botao).prev()[0].name.lastIndexOf("_")+1); console.log('campo: ' + campo); console.log('indice: ' + indice); console.log('botao: ' + botao.name); }

To usando o next(), esqueci de colcoar aqui a solução que fiz. vou postar

To usando o Id para inserir num rest os pais x filhos

Boa noite, tudo bem?

Parece que você já está solucionou a questão, mas como podemos ter mais de uma solução, coloco aqui um caminho "paliativo" que resolveu pra mim.

Eu coloco um botão no corpo do pai-filho (não é o botão que inclui linhas no pai-filho) e no onclick deste botão eu passo como parâmetro o "this.name":


<button class="btn btn-primary" id="botaoLocaliza" type="button" onclick="buscaItem(this.name);">Localizar</button>

No código Javascript eu pego este nome, que vem como o índice no final dele, e pego este valor pra usar em minhas transações:


function buscaItem(nomeBotao) {
    var indiceLinha = parseInt(nomeBotao.replace("botaoLocaliza___", ""));   // Aqui coloque após o nome do campo 3 (três) underlines, neste caso ficou "botaoLocaliza" mais os três underlines "botaoLocaliza___"
    alert("Linha atual pai-filho: " + indiceLinha);
}

Isso faz com que você pegue sempre o item que está na mesma linha do botão.

Se estiver muito confuso me fala. Espero que ajude.