2016-04-30 64 views
1

我有以下HTML:模擬一個GROUPLIST點擊一個按鈕在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> 

我想,以創造在GROUPLIST循環點擊,然後取消勾選所有的組列表中,但是當按鈕我嘗試: document.getElementById('/groups/electronic-dance-music-1').click(); 我得到:Uncaught TypeError:無法讀取屬性'點擊'null(...) 這是正確的路要走嗎?

+0

沒有用'/組的ID沒有元素/電子舞曲音樂,1' –

+0

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

回答

0

不要直接調用事件處理程序,只需調度一個事件並讓瀏覽器執行其他任何操作。

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

你的ID很奇怪。通過標識id屬性給出要引用的標籤。

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

請注意,由於Event構造函數將'bubbles'和'cancelable'屬性默認爲'false',因此任何捕獲未被構建的事件的事件處理函數都將無法防止事件冒泡或阻止默認行動分別 –

+0

好評@PatrickEvans!當需要使用'新事件('點擊',{/ *設置在這裏* /})''。還應該說,一些默認行爲是由開發者自己觸發的,例如,當模擬鏈接點擊時,可以通過'dispatchEvent'觸發處理程序,但也可以調用'element.click'使'href'屬性生效。在這種情況下,如果'preventDefault'已被某個處理程序調用,您可能會感興趣。 –