IE 以外のブラウザでは、改行がテキスト ノードとして使用されます (nodeType は 3)。要素の場合、nodeType は 1 です。これらを見つけるための実用的な方法は次のとおりです:
lastSibling:function(node){
var tempObj = node.parentNode.lastChild;
while(tempObj.nodeType!=1 && tempObj.previousSibling!=null)
{
tempObj=tempObj.previousSibling ;
}
return (tempObj.nodeType==1)?tempObj:false;
}
これは、DOMhelp ライブラリの lastSibling メソッドのソース コードです。 「シンプルな言語での JavaScript」という本。これは、mootools ライブラリに実装されているソース コードに似ています:
'last-child ': function(){
var element = this;
while ((element = element.nextSibling)){
if (element.nodeType == 1) return false;
}
return true;
}
これは、Mootools 1.2.4 ソース コードの last-child() メソッドです。