на "чистом" JavaScript?
нужно навешивать события на элементы после их загрузки.
для этого либо скрипт помещается после всех используемых элементов (например, перед закрывающим ), либо вешается событие на загрузку - например, всего контента:
window.onload= function(){
document.getElementById('id').onclick=function(){ /* ...*/ }
}
почитать тут: http://javascript.ru/tutorial/events/intro
но проще использовать библиотеки типа jQuery, Prototype, Mootools и т. п. , чтобы не мучиться с кроссбраузерностью и не писать кучу кода при выборе по сложным признакам ( к которым относится и выбор по классу, ибо метод getElementsByClassName не кроссбраузерный) . а в библиотеках это прекрасно реализовано: http://api.jquery.com/category/selectors/ , как и назначение событий: http://api.jquery.com/category/events/
аналогом window.onload в jquery обычно является $(document).ready(), или $(function(){ }): http://api.jquery.com/ready/