Если вы используете getElementById с документом типа - document.getElementById, то он всегда работает.
Однако, если мы выполняем то же самое в элементе, скажем x как x.getElementById, тогда он возвращает ошибку.
Необычная вещь в том, что getElementsByClassName и getElementsByTagName работают над элементами, однако getElementById не работает!