Hallo Micha Schweizer,
firstChild ist immer riskant, da in einigen Browsern Zeilenumbrüche zwischen den Tags als Knoten gelten. Du müsstest also Prüfen, ob das erste Kind auch ein Bild ist.
Warum nimmst du nicht statt
document.getElementById('span'+ID).firstChild.id
lieber
document.getElementById('span'+ID).document.getElementsByTagName("img")[0].id
?
Gruß, Jürgen