DOMの要素をツリー状につなげる

DOMをもっと直感的に扱えないか、と思っていろいろ試行錯誤。


<html>
<head>
<title>DOM->obj?</title>
<script language="JavaScript">
<!--
function relay(node) {
var c = node.childNodes;
for(var i=0; i<c.length; i++) {
var name = c[i].nodeName;
name = (name == '#text') ? '_text' : name.toLowerCase();
if(!node[name]) node[name] = new Array();
node[name].push(c[i]);
relay(c[i]);
}
}

function main() {
var d = window.document;
relay(d.body);
d.body.table[0].border = 1;
var zoo = d.body.table[0].tbody[0].tr[1].td[0]._text[0];
zoo.appendData(" zoo");
}
//-->
</script>
</head>
<body onLoad="main();">
<table>
<tbody>
<tr>
<td>foo</td>
<td>bar</td>
</tr>
<tr>
<td>zoo</td>
<td>baz</td>
</tr>
</tbody>
</table>
</body>
</html>

添え字がちょっと鬱陶しい。問題がある気もするし。
もうちょっとうまい方法はないかな…