Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabianoSouza

Pegar ID do elemento

Recommended Posts

Tenho um grid feito em JS + AJAX.

Há a coluna de botões do tipo radio.

Até aqui tudo ok.

 

Preciso que, ao clicar no botão radio, pegue o ID da TR onde este botão radio está posicionado.

To tentando isso...

function pega_dados_linha(id_row)
{
var var_row = id_row.id;
var elemento_click = document.getElementById(var_row).id;
var y=document.getElementsByTagName("tr")[0];
pai = y.parentNode.nodeName;
pai= pai.id

alert(pai)

E chamo no onClick do radio assim

pega_dados_linha(this);

Mas não está funcionando.

 

Preciso pegar o ID da TR ao clicar no botão radio, não ao clicar diretamente na TR.

 

 

 

Brigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Modifiquei um pouco seu codigo

<table>
    <tbody>
    <tr id="id_tr_1">
        <td>td1</td>
        <td id="id_td_1">
            <input type="radio" name="opt" value="opt1" onClick="pega_dados_linha(1)"/>
        </td>
    </tr>
    </tbody>
</table>

Segue o javascript:

function pega_dados_linha(id_row)
{
	var var_row = 'id_td_'+id_row;
	var elemento_click = document.getElementById(var_row);
	console.log(elemento_click.parentNode.id);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma pergunta...

O id da TR, não pode ser o value do botão radio, ou até mesmo o id, classe do rádio?

Olá Dinaerte Neto

Até poderia... Mas preciso do ID da TR pq vou precisar puxar alguns datasets dela.

 

 

Wanderval, não funionou.

 

Coloquei um alert(console)

Aparece [object]

 

Achei que fosse exibir o id da TR, id_tr_1, no caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca

alert(elemento_click.parentNode.id); 

o console.log() e uma outra forma de visualização de dados

 

se quiser atribuir a uma variavel pai como tinha feito ficaria assim

pai = elemento_click.parentNode.id;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa! Agora sim funfou. Mas fala uma coisa..

Nessa linha var var_row = 'id_td_'+id_row;

O que significa id_td??

 

É uma string? Não consegui sacar o que isso faz


Ah saquei! é o ID do objeto pai.. a TD

Agora preciso ver como fazer isso dentro de um loop...

Pelo que to vendo vou precisar o pegar primeiro o ID da TD (que é a tag imediatamente superior), e com isso depois pegar o ID da TR.

 

Acho que a lógica é essa, né?

Compartilhar este post


Link para o post
Compartilhar em outros sites

a string e so pra vc identificar mesmo id_td e um atalho caso a td tenha varios filhos e não precise

colocar varios parentNode no elemento para se chegar no id.

 

como pode ter percebido o parametropassado seria o id vindo do banco.

a logica seria essa mesma

 

o loop será feito onde?

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom nao sei a forma com que esta trabalhando na interface mas se não houver problema utilize um loopcom php utilizando foreach e seta o parametro e o id_td e o id_tr com o id do banco

Compartilhar este post


Link para o post
Compartilhar em outros sites

É um grid feito em js que é preenchido via AJAX.

O loop é js mesmo..

Fiz este grid usando o código que vc postou para criar tabela com js. Daí montei o JSON e o AJAX.

 

Agora tô brigando aqui para setar as valores das tags (TR, TD...) com os valores do JSON para em seguida aplicar sua sugestão postada acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Wanderval.

Realmente to precisando de mais um pouquinho de ajuda.

Testando, notei que é trazido para o alert sempre o mesmo id de TR. Veja esse exemplo em que criei mais uma linha (com um ID diferente pq é o que acontece dentro de um loop)

<table>
    <tbody>
    <tr id="id_tr_1">
        <td>td1</td>
        <td id="id_td_1">
            <input type="radio" name="opt" value="opt1" onClick="pega_dados_linha(1)"/>
        </td>
    </tr>

    <tr id="id_tr_2">
        <td>td2</td>
        <td id="id_td_1">
            <input type="radio" name="opt" value="opt1" onClick="pega_dados_linha(1)"/>
        </td>
    </tr>

    </tbody>
</table>

Ao clicar no segundo radio teria que trazer o valor id_tr_2, que é da segunda linha

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.