各ノードにアクセスする

DOM操作を行う場合、ID名やクラス名以外に位置関係を基準に各ノードにアクセスすることが出来る。

div id="contents">
<h3>お気に入りサイト</h3>
    <ul id="myLink">
        <li id="firstLink"><a href="http://www.MdN.co.jp/">MdN</a></li>
        <li><a href="http://www.w3.org/">W3C</a><li><a href="http://www.yahoo.co.jp/">Yahoo</a></li>
        <li><a href="http://www.google.co.jp/">Google</a></li>
    </ul>
</div>
window.onload = function(){
    var baseTag = document.getElementById("myLink");
    alert("1:基準:"+baseTag.id);
    alert("2:親ノード(div)のID:"+baseTag.parentNode.id);
    alert("3:最初の子ノードのID(li):"+baseTag.childNodes[0].id);
    alert("4:子ノード(li)内の子ノード(a)のhref属性値:"+baseTag.childNodes[0].firstChild.href);
    alert("5:子ノード(li)内の子ノード(a)の種類:"+baseTag.childNodes[0].firstChild.nodeType);
    alert("6:子ノード(li)内の子ノード(a)の子ノードの内容:"+baseTag.childNodes[0].firstChild.firstChild.nodeValue);
    alert("7:子ノード(li)内の次のノードのhref属性値:"+baseTag.childNodes[0].nextSibling.firstChild.href);
    alert("8:最後から2番目の子ノード(a)のhref属性値:"+baseTag.lastChild.previousSibling.previousSibling.firstChild.href);
}
parentNode 親ノードの参照
childNodes[0] 0番目の子ノードの参照
firstChild 最初の子ノードの参照
lastChild 最後の子ノードの参照
childNodes.length 子ノードの総数
nextSibling 同じ階層内の次のノード
previousSibling 同じ階層内の前のノード
nodeType アクセスしたノードの種類、1はタグ、3はテキスト
nodeValue ノードの内容