Problemet här är att browsers gillar att smyga in textnoder lite här och där. Dessa textnoder är uppenbarligen inte inte är A-noder.
Opera, som jag använder, lägger in en textnod om det finns text mellan element.
Med andra ord, om det finns whitespace mellan </a> och </li> blir lastChild en textnod innehållandes detta whitespace. Tar jag bort whitespacet och skriver </a></li> utan mellanrum, så år lastChild A-noden.
Firefox beter sig på samma sätt, men har till skillnad från Opera inte stöd för IE's specialvariant parentElement, utan kräver att det ska heta parentNode, som det gör "på riktigt".
IE har en annan strategi. Den strunter blankt i huruvida det finns whitespace mellan slut-taggarna, men av någon anledning lägger den en textnod där om det inte finns ett mellanslag sist i det inre elementet, som någon slags kompensation? Vad vet jag?
Jag såg en gång idén om något som kallas "DOM explorers" som söker igenom DOM-trädet och på så vis går runt buggar som denna.
Tills vidare rekommenderar jag en alternativ metod, som t ex getElementsByTagName.
function toggleComments(objSource){
alert(objSource.parentNode.getElementsByTagName("A")[0].innerHTML);
}

