Javascriptでドキュメント上にない要素を指定するとエラーが表示される
var a = document.getElementById('id');
var b = document.getElementsByClassName('p');
このようにドキュメント上に存在しない要素を取得するとき、documentを親として要素を取得する場合は特にエラーは表示されません。
var a = document.getElementById('id');
var b = a.getElementsByClassName('p');
ところが、このように親要素に#idがあってその中のp要素を取得したいとき、ChromeにてUncaught TypeError: Cannot read property 'getElementsByClassName' of nullと表示されます。
要素が見つからなかった場合は空の集合が返るのではないのでしょうか?
追記
たとえば、Webサイトのすべてのページに共通なJSとして
var a = document.getElementById('id');
var b = a.getElementsByClassName('p');
を読み込む場合、すべてのページに#id要素が存在するとは限りません。そのような場合は、b
に代入する前に null
かどうかをチェックしてから代入するといったような方法が普通でしょうか?普通はどのような方法が使われますか?