2017-04-03 63 views
1

我知道這聽起來很愚蠢,但我需要創建一個函數,找到一個onClick附加到它的按鈕。然後點擊它。點擊已經onClick的按鈕

所以像:

<div onclick="coolFunction()" class="coolClass"> 
    <p>Click Me!</p> 
</div> 

我試圖做這樣的事情尋找它:

$('.coolClass').attr('onClick') == 'coolFunction()' 

哪件事居然找到了,問題是我不明白我怎麼可以點擊因爲它在if方法中。

回答

2

您的選擇器會更像$('[onclick="coolFunction()"]')

所以做你的描述,你可以這樣做

$('[onclick="coolFunction()"]').trigger('click'); 

雖然,除非coolFunction()關心這個DOM元素是明確的,你可以只調用coolFunction(),而無需其背馱式上你的點擊處理器。

更新:使用參數

// Note selector is less specific, but still targeted 
$('[onclick^="coolFunction"]').trigger('click'); 

有了,這一點,你可以觸發點擊處理程序,coolFunction(var)在你的HTML會達到預期效果。

+0

Legend!你認爲我可以在提到的函數中使用一個變量?例如coolFunction(var)? –

+0

當然。查看更新的答案。 – couzzi

+0

真棒,謝謝! –

0
if ($('.coolClass').attr('onClick') == 'coolFunction()') 
{ 
    $('.coolClass').click(); 
} 
0
$('.coolClass').each(function() { 
    $this = $(this); 
    if ($this.attr('onClick') == 'coolFunction()') { 
     $this.trigger('click') 
    } 

}); 

這將選擇.coolClass所有元素,檢查是否onclick屬性相匹配的coolFunction呼叫並觸發元素上的單擊事件。

0

由於couzzi說,你可以先驗證,如果類coolClass的所有元素都具有attribut coolFunction,當它的話你可以申請你想對他們做什麼。

$('.coolClass').each(function() { 
$this = $(this); 
if ($this.attr('onClick') == 'coolFunction()') { 
    $this.trigger('click') 
}