Ich nehme mal an, Du willst erreichen, dass die alert-Anweisung den Zusammnegesetzten String y + '.' + monatnr + '.' + jahr ausgibt.
Die Stringverkettung wird natürlich innerhalb der "" im zweiten Beispiel nicht ausgewertet. Stattdessen müßte es heissen:
document.getElementById(x).href="javascript:alert(" + y + "." + monatnr + "." + jahr;