前後のノードを参照する

説明

1つ前のノードを参照するにはpreviousSibling、1つ先のnextSiblingを使って指定します。これは現在のノードの前後のノードを示すもので、現在のノードの子ノードを示すわけではない点に注意してください。
JavaScriptテクニック ブック  詳しい解説などはJavaScriptテクニック ブックを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>前後のノードを参照する</h1>
<form action="./refnode.cgi" method="get" name="mainForm">
<input type="button" id="checkButton" value="ノードを参照"><br>
</form>
<div id="dNode"><span>ノード1</span><span>ノード2</span><span>ノード3</span></div><div id="result"></div>
</body>
</html>

window.onload = function(){
document.getElementById("checkButton").onclick = function(){
var base = document.getElementById("dNode");
var res = document.getElementById("result");
var text = checkNode.print(base.firstChild)+"<br>";
text += checkNode.print(base.nextSibling)+"<br>";
text += checkNode.print(base.lastChild.previousSibling.firstChild)+"<br>";
res.innerHTML = text;
}
}
checkNode = {
print : function(aNode){
if (aNode.nodeType == 1){ return aNode.tagName; }
if (aNode.nodeType == 3) { return aNode.nodeValue; }
return "---";
}
}