2016-03-11 263 views
0

我有兩個問題,都是關於通過js點擊。javascript,按鈕,點擊

所以,我的網站上,我希望在2個按鈕自動物理一下,我知道,如果我們getElementbyId.click()我們可以做到這一點。但是這兩個按鈕都沒有ID。我嘗試協調點擊,它不工作,也是由班級,但無濟於事。

我該如何點擊?

<button type="submit" class="btn btn-default btn-success">GO</button> 

這。

document.getElementsByClassName不工作:(

+1

你是什麼意思'document.getElementsByClassName'不起作用?如果你調用'document.getElementsByClassName('red')',你會得到一個包含'​​'的集合。 –

+0

您是否設置了一個處理程序以在單擊元素時運行?還有,你說這些沒有身份證。爲什麼不? – dewd

+0

@MikeC我認爲他的意思是說,如果在返回的'HTMLCollection'上調用'click()',它就不起作用。它必須迭代。即使只有1個元素。 – dewd

回答

1

有可能觸發使用document.getElementsByClassName了點擊,但你必須瞭解你所得到的來自document.getElementsByClassName回不是一個單獨的元素,但你可以遍歷列表。

您可以通過執行觸發的每個項目點擊集合中的以下內容:

var redClassElements = document.getElementsByClassName('red'); 

for(var i=0;i<redClassElements.length;i++) { 
    redClassElements[i].click(); 
} 

這將做什麼,如果你還沒有分配click handler到ELEM雖然我們正在調用。

另外,你真的要觸發多個元素的點擊?你最好的選擇是按照建議給你的元素分配一個id。然後您可以使用document.getElementById('theId').click()

+0

哦,我的天啊。非常感謝!我用這種方法,但我用我想要的號碼取代了我。 –

1

試試這個

document.getElementsByClassName('red')[0].click(); 

爲什麼[0]?因爲getElementsByClassName方法收益類以數組的形式(匹配DOM元素),因此,[0]是該指數在這裏:-) 而對於你的第二個按鈕就可以觸發使用

document.querySelector("button[type=submit]").click(); 

順便點擊如果你正在使用jQuery,那麼你爲什麼不使用

$(".red").click(); 
$("button[type=submit]").click(); 

無論如何這兩個解決方案應該工作。 希望幫助:-)

+0

是的兩種方法都可以工作!非常感謝您 –

+0

不客氣:-)將答案標記爲已接受,以便它可以幫助其他人。 –

1

使用jQuery ..

$('td[class="red"], button[class="btn btn-default btn-success"]').click(); 
+0

謝謝您的意見。很受歡迎,我學到了一些東西! –