Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

189
Visualizações
¿Por qué la función onlick devuelve esto?
let classMessage = document.createElement('class'); document.getElementById("chat").prepend(classMessage); classMessage.id = tabMsg[0]; classMessage.innerHTML += '<button onclick="del(' + tabMsg[0] + ')">Try it</button>' function del(parsedata) { console.log(parsedata) }

tabMsg es una línea analizada (con división).

No entiendo por qué cuando hago clic en el botón, la salida en la consola es:

 <class id="vuwzbip6dr"><button onclick="del(vuwzbip6dr)">Try it</button><p>gfdgf gdfgf</p></class>

por que no pone el id vuwzbip6dr!!! ?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Encapsular cadenas con cadenas dentro de cadenas generalmente causa más problemas de los que resuelve y, por lo tanto, debe evitarse.

En su caso, eso significa esta declaración:

'<button onclick="del(' + tabMsg[0] + ')">Try it</button>' te está causando el problema.

Esa línea se interpreta como:

<button onclick="del(v)">Try it</button>

Donde v se convierte en un identificador que apunta a this , o al elemento currentTarget y no a una cadena como esta: "dev('v')".

Mirando la documentación, uno ve que el controlador onclick proporciona el currentTarget como el primer argumento para la devolución de llamada, de ahí la asignación que menciono.

Para solucionar esto, debe confiar en las herramientas que proporciona JavaScript, es decir, le proporciona el objetivo currentTarget (elemento de destino del clic), por lo que todo lo que tiene que hacer es usarlo y solicitar el atributo de identificación del elemento principal:

 classMessage.innerHTML += '<button onclick=del(this)>Try it</button>' function del(target) { console.log(target.parentNode.id) }

Pero eso tampoco es recomendable. Siempre debe intentar evitar el uso de controladores de eventos en línea. Dejaré eso a una pregunta diferente para ti.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda