2014-08-30 5 views
6

Tak więc piszę skrypt, który można uruchomić na stronie, ale chcę kliknąć na ten element, niestety, nie ma on id, aby uzyskać i próbuję użyć funkcji .click() na tym, ale to nie działa, oto co mam, ktoś wie jak to naprawić? Jest to jedyny element w klasie równieżJavaScript Kliknij element według klasy

var classes = document.getElementsByClassName('rateRecipe btns-one-small'); 
var Rate = classes[0]; 
Rate.click(); 
+1

"* Jest to jedyny element w klasie *" - ok., Jedyny element z * * klasą *, wymieniono * dwa * w selektorze? –

+0

w klasie rateRecipe i btns-one-small –

+1

Gdy masz pytanie dotyczące wyboru DOM, musisz opublikować wybrany DOM, abyśmy mogli zobaczyć, co jest nie tak. W przeciwnym razie po prostu zgadujemy. –

Odpowiedz

17

sugeruję:

document.querySelector('.rateRecipe.btns-one-small').click(); 

Powyższy kod zakłada, że ​​dany element ma zarówno z tych klas; w przeciwnym razie, jeśli przestrzeń ma oznaczać związek przodek-potomek:

document.querySelector('.rateRecipe .btns-one-small').click(); 

Sposób getElementsByClassName() pobiera pojedynczy nazwa-klasy (zamiast document.querySelector()/document.querySelectorAll(), które podejmują selektora CSS), i przeszedł dwa (przypuszczalnie nazwy klas) do metody.

Odniesienia:

+1

Po prostu FYI, 'getElementsByClassName' akceptuje wiele klas, więc oryginalny kod użytkownika @ user3010773 będzie działał dobrze, jeśli próbuje wybrać jeden element, który ma obie klasy. http://jsfiddle.net/u94wtpcn/ –