Browsers other than IE use line breaks as text nodes (nodeType is 3). For elements, nodeType is 1. Here's a practical way to find them:
lastSibling:function( node){
var tempObj = node.parentNode.lastChild;
while(tempObj.nodeType!=1 && tempObj.previousSibling!=null)
{
tempObj=tempObj.previousSibling;
}
return (tempObj.nodeType==1)?tempObj:false;
}
This is the source code of the lastSibling method in the DOMhelp library in the book "JavaScript in a Simple Language". It is similar to the source code implemented in the mootools library:
'last-child ': function(){
var element = this;
while ((element = element.nextSibling)){
if (element.nodeType == 1) return false;
}
return true;
}
This is the last-child() method in the Mootools 1.2.4 source code.