childNodesを使わずに子要素を取得する方法

私的メモ.

var options = document.getElementsByTagName('select')[0].options;
var rows = document.getElementsByTagName('tbody')[0].rows;
var cells = rows[0].cells;

childNodesとかとあまり変わらないんだけど, 以下のようなケースでは違う.

<select>
  <option value="hoge">fuga</option>
</select>

childNodesだとoption要素の直前, 直後のスペースがテキストノードとして取得されるけど, optionsならその心配はない. rowsやcellsも一緒.