2017-07-12 2 views
-1

Angenommen, ich habe eine Elternunterteilung (ul) in HTML.So fügen Sie einen EventListener zu einer dynamisch erstellten Schaltfläche in einer übergeordneten ID in PURE JAVASCRIPT hinzu, Nein Jquery

Darin werden viele dynamisch generierte listen (li) von JS-Code erzeugt, die eine Klasse & ein Attribut haben.

Ich möchte auf diese dynamisch generierten Listen Klickereignisse hinzufügen, um ihre jeweiligen Attribute in reinem Javascript abzurufen.

Dieser JQuery-Code funktioniert ->

$('#parentDivId').on('click','.dyanmicallyGeneratedChildClass',function(event){ 

    var child_attr = $(this).attr('dyanmicallyGeneratedChildClassAttr'); 

    console.log(child_attr); 

}); 

Kann jede alternative Lösung zu dem obigen Code in reinem Javascript da sein?

+0

Willkommen ohne mit jQuery in der folgenden Art und Weise das gleiche zu tun. Dies ist kein Code-Schreibdienst. Wir helfen Ihnen gerne bei einem Problem, aber wir erwarten von Ihnen, dass Sie sich etwas Mühe geben (einschließlich Suchen dieser Website und Google nach vorhandenen Antworten), um es selbst zu lösen. Die [Tour] (https://stackoverflow.com/tour) und [Hilfecenter] (https://stackoverflow.com/help), insbesondere [Wie Sie fragen können] (https://stackoverflow.com/help/how (zu fragen), kann Ihnen helfen, sich mit dieser Site vertraut zu machen und wie sie funktioniert. – Silencer310

+0

Es tut mir leid, ich habe nicht bemerkt, dass mein Code-Snippet nicht korrekt wiedergegeben wurde. Ich habe es korrigiert. –

+0

'document.getElementsByTagName'? Oder vielleicht eine neue 'class' und' document.getElementsName'? –

Antwort

1

Was Sie in jQuery tun, ist Event Delegation. Sie können auf Stack-Überlauf

document.getElementById('division').addEventListener('click', function(event) { 
 
    var liElement = event.target; 
 
    \t if (liElement.className == 'dyanmicallyGeneratedChildClass') { 
 
     console.log(liElement.getAttribute('dyanmicallyGeneratedChildClassAttr')); 
 
    } 
 
});
<ul id="division"> 
 
    <li>bar </li> 
 
    <li>abc </li> 
 
    <li>123 </li> 
 
    <li class="dyanmicallyGeneratedChildClass" dyanmicallyGeneratedChildClassAttr="test">foo </li> 
 
</ul>

+0

hat perfekt funktioniert! so war event.target der Trick, um die bestimmte Liste auszuwählen. –

Verwandte Themen