"i" ist undefiniert (was ich nicht verstehe,da es ja in der schleife ist)
Die Schleife ist längst abgearbeitet, wenn onclick eintritt.
x.onclick = function(){
alert(this.id);
}
ergäbe den gewünschten Wert. Du hast über this vollen Zugriff auf das Element, dessen onclick-Event gefeuert hat, und brauchst daher nicht nochmals mühselig dessen ID herausfinden.