「圧縮したHTMLの状態」では正常動作するのですが、HTMLを整形展開すると、下記エラーとなります。

Uncaught TypeError: Cannot read property 'childNodes' of undefined

hoge.childNodes[1].childNodes[0],

・恐らく改行が入るからだと思うのですが、改行にも対応するにはどうすれば良いですか?


追記

・コードのどの部分に該当するのか把握できていないので、例えば下記コードだった場合、input要素を取得するとき、改行「あり」「なし」何れにも対応させることはできますか?
・childNodesでまとめて取得して、ループで何か出来ないのかな、と思ったのですが…

・改行なし

<form class="a1"><p class="a2">ファイルを選択</p><p class="a3"><input accept="image/*" class="a4" type="file"></p></form>

・改行あり

<form class="a1">
  <p class="a2">ファイルを選択</p>
  <p class="a3">
    <input accept="image/*" class="a4" type="file">
  </p>
</form>

元コードがchildNodeを使用していたのでなるべくそれに沿うようにしようと思ったのですが、例えば、下記のようなコードで取得しても良い?

document.getElementsByClassName( "a4" )