Çünkü sayfa yükleme işlemi yukarından başladığı için sayfa içerisindeki html kodları tam yüklenmeden script önce yüklenir.Scriptin çalışması için html de etki ettiği yerin mevcut olması gerekiyor.Fakat bu durumda script önce yüklenir ve etki edeceği yapıyı arar bulamaz o yüzden çalışmaz.Yada

$(document).ready(function()); gibi özel kod eklenir.Bu kod sayfanın yüklendikten sonra jquery kodlarının çalışmasını belirtir.