子要素を取得するで書いたスクリプトのホワイトスペースを削除します。
以下のようなHTMLがあったとします。
child1
child2
child3
child4
child5
<div id="parent">
<span id="child1">child1</span>
<span id="child2">child2</span>
<span id="child3">child3</span>
<span id="child4">child4</span>
<span id="child5">child5</span>
</div>
以下のスクリプトでアラートする前にホワイトスペースかどうかをnodeValueを使って判断します。
nodeValueはnodeTypeが3(テキストノード)の場合、存在するプロパティで、1(要素ノード)の場合は存在しません。
ホワイトスペースはテキストノードです。
<script language="JavaScript">
<!--
function b(){
elm = document.getElementById("parent").childNodes;
for(var i=0;i<elm.length;i++){
alert(elm[i].innerHTML);
}
}
// -->
</script>
以下のボタンを実行してください。ホワイトスペースが実行されていないのが確認できます。
以下、ソースです。
<script language="JavaScript">
<!--
function a(){
elm = document.getElementById("parent").childNodes;
for(var i=0;i<elm.length;i++){
if(elm.item(i).nodeType === 3){
if(!elm.item(i).nodeValue.match("/[^\s\t\n\r]/")){
continue;
}
}
alert(elm.item(i).innerHTML);
// 同じです
//alert(elm[i].innerHTML);
}
}
// -->
</script>
IE8、Chrome25で動作確認済みです。