Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou com o problema para pegar o id de um elemento no meu HTML o id está lá(tenho certeza), mas quando faço o "this.id" recebo como resposta "undefined". Achei uma solução onde o cara pega usando somente "id" mas o javascript está inserido no elemento html.
Preciso pegar o id de um elemento que está no meu arquivo "index.html" para dentro do meu arquivo "script.js". Como posso fazer isso?
Aqui a solução que eu citei acima: http://www.webdeveloper.com/forum/showthread.php?24823-this-id-returns-undefined-WHY
OBS: Vi alguns exemplos com JQuery, mas preciso fazer isso sem usar JQuery já que é um trabalho da faculdade, onde foi proibido o uso de ferramentas como essa.
William aqui vai o meu caso:
Primeiro eu gero a minha tabela Dinamicamente.
function criar_tabela(numLinhas, numColunas, tabela){
for (var i = 0; i < numLinhas; i++) {
var ultima = tabela.rows.length;
var linha = document.createElement("tr");
linha.setAttribute("id","line"+ultima);
for (var j = 0; j < numColunas; j++) {
var celula = document.createElement("td");
celula.setAttribute("id", ultima+""+j);
celula.addEventListener("click", function(){
atirar();
});
linha.appendChild(celula);
};//for - j
tabela.appendChild(linha);
};//for - i
return false;
}//function - criar_tabela
Após gerar minha tabela eu desejo pegar o "id" de um elemento "td", com essa cara:
<td id="00"></td>
OBS: Eu adiciono um evento acima para chamar a função atirar(), mesmo ele não aparecendo no html o evento está presente, pois posso visualiza-lo ao inspecionar o código no navegador e o mesmo é disparado ao eu clicar no "td".
/applications/core/interface/imageproxy/imageproxy.php?img=https://dl.dropboxusercontent.com/u/90655793/evento.png&key=31a0b1383c94c214c8d5535cfd629856224100750f7bf14f64ac73167484981a" alt="evento.png" />
Ai quando chamo a função abaixo eu é chamada com o evento "click":
function atirar(){
alert(this.id);
}
Acabo recebendo "undefined" como saída.
Ok, segue para vc entender:
opcao errada
<div id="a2" onclick="teste2()">aa</div>
<script>
function teste2(){
alert(this)//[object Window]
}
</script>
<hr><div id="a0" onclick="teste0(this)">aa</div>
<script>
function teste0(el){
alert(el.id);
}
</script>
<hr><div id="a1">aa</div>
<script>
document.getElementById('a1').addEventListener('click', function(){
alert(this.id);
});
</script>Muito obrigado William funcionou perfeitamente!
Como assim "pegar", em qual instante ? onde está o elemento ?
this.id de quem ? quem é this ?