2016-04-30 21 views
1

Ich habe folgende HTML:Simulieren Sie einen Button-Klick auf eine Gruppenliste in Javascript

►<li class="addToGroupList item sc-border-light-top">~</li> 
►<li class="addToGroupList item sc-border-light-top">~</li> 
► li class addToGroupList item sc-border-light-top >_ /li == $0 
▼<li class="addToGroupList item sc-border-light-top"> 
▼ <div class="groupItem sc-media"> 
▼ <div class="sc-media"> 
▼<a href="/groups/electronic-dance-music-l" class="groupItem coverArt sc-media-image" title="Go" to electronic dance music - you sexy beat.> 
<span style="background-image:url(https://il.sndcdn.com/artworks-000000484010-ephjo0-t120x120.jpg);width:48px;height:48px;" class="sc-artwork sc-artwork- 
placeholder-10 " aria-label="Electronic Dance Music - You sexy beat.” aria-role="img"></span> 
</a> 
▼<h3 class="groupItem title sc-media-content"> 
<a href="/groups/electronic-dance-music-l" class="groupItem title-link sc-link-dark sc-truncate” title="Go" to electronic dance music - you sexy beat.> 
Electronic Dance Music - You sexy beat. 
</a> 
</h3> 
▼ <div class="groupItem actions sc-button-toolbar"> 
::before 
<button class="addToGroupButton sc-button-blue sc-button sc-button-medium sc-button-responsive sc-button-selected" tabindex="0" title="Remove">Added</button> 
::after 
</div> 
</div> 
</div> 
</li> 
►<li class="addToGroupList item sc-border-light-top">~</li> 
►<li class="addToGroupList item sc-border-light-top">-</li> 

Ich möchte eine Schleife auf der Gruppenliste erstellen, um dann alle klicken unclick die Schaltflächen in der Gruppenliste, aber wenn ich versuch: document.getElementById('/groups/electronic-dance-music-1').click(); ich bekomme: Uncaught TypeError: Kann Eigenschaft 'Klick' von null (...) nicht lesen Ist es der richtige Weg zu gehen?

+0

Es gibt kein Element mit der id '/ Gruppen/Elektronik-Tanz-Musik-1' –

+0

Ref: https://developer.mozilla.org/de/docs/Web/API/EventTarget/dispatchEvent – SEUH

Antwort

0

Rufen Sie einen Event-Handler nicht direkt auf, senden Sie einfach ein Event und lassen Sie den Browser irgendetwas anderes tun.

document.getElementById('elementID').dispatchEvent(new Event('click')); 

Ihre ID ist seltsam. Geben Sie Tags an, die Sie mit der ID id attributieren möchten.

<tagname id="my-element-id"> 
+0

Beachten Sie, dass der Ereigniskonstruktor die 'bubbles' und' cancelable' Eigenschaften auf 'false' setzt und ein Ereignishandler, der das Ereignis abfängt, das nicht auf true gesetzt ist, nicht in der Lage ist, Ereignisblasen zu verhindern oder zu verhindern Standardaktion bzw. –

+0

Gute Bemerkung @PatrickEvans! Verwenden Sie bei Bedarf 'new Event ('click', {/ * settings go here * /})' '. Ferner ist zu sagen, dass einige Standardaktionen durch den Entwickler selbst ausgelöst werden sollen, z. Wenn Sie einen Link-Klick simulieren, können Sie Handler über 'dispatchEvent' auslösen, müssen aber auch' element.click' aufrufen, damit das Attribut 'href' wirksam wird. In diesem Fall könnten Sie interessiert sein, wenn 'preventDefault' von einem Handler aufgerufen wurde. –

Verwandte Themen