Estoy tratando de agregar una función OnClick a un elemento de 4 elementos en la carga de la página y luego hacer que esas funciones OnClick cambien el texto de un elemento separado. Intenté crear una función llamada AddClick que especificaba el elementID y luego establecía un atributo OnClick y una función separada. (Hice esto cuatro veces para cada elemento que quiero que active la nueva función al hacer clic.
Luego le pedí a AddClick que se ejecutara al cargar la página.
Luego creé las funciones que reemplazarían el texto anterior del elemento separado. (Estos deben configurarse para ejecutarse cuando se hace clic en los elementos.
Lo siento de antemano si este fue el enfoque incorrecto/si no estoy claro. Primera vez publicando aquí, cualquier ayuda apreciada.
Para el HTML, el texto que estoy tratando de modificar está dentro de un div con una ID, pero el h4 no tiene una ID específica y no puedo agregar una.
Aquí está el JavaScript que traté de implementar:
<script type="text/javascript"> function AddClick(){ //Name & Number document.getElementById("o_5794738").setAttribute('onclick', "NewText()"); //Number document.getElementById("o_5794733").setAttribute('onclick', "OldText()"); //Name document.getElementById("o_5794723").setAttribute('onclick', "OldText()"); //None document.getElementById("o_5794728").setAttribute('onclick', "OldText()"); }; window.onload = AddClick; function NewText() { document.getElementById("pt_fc_775338").getElementsByTagName(h4).innerHTML = "<h4>New Text</h4>"; } function OldText() { document.getElementById("pt_fc_775338").getElementsByTagName(h4).innerHTML = "<h4>Old Text</h4>"; }Cualquier ayuda es muy apreciada.
Puedes probar esto:
document.getElementById("demo").onclick = function() {myFunction()};Encontré este ejemplo en https://www.w3schools.com/jsref/event_onclick.asp
No es necesario agregar un evento de click usando load , puede agregar directamente el evento de clic usando .addEventListener (por cierto, .setAttribute no es para agregar ningún evento)
Simplemente use .addEventListener así:
document.getElementById("o_5794738").addEventListener('click', NewText);
Lea esto para obtener más información sobre .addEventListener()
Aquí está el fragmento de demostración a continuación:
document.getElementById("o_5794738").addEventListener('click', NewText); function NewText() { document.getElementById("pt_fc_775338").getElementsByTagName("h4")[0].innerHTML = "New Text"; } <button id="o_5794738">Click Me!</button> <div id="pt_fc_775338"> <h4></h4> </div>