insertBefore
работает правильно в IE
, если 2-й параметр является допустимым элементом DOM, или null
(typeof null
равен Object
и, таким образом, typeof
элемент DOM).
Для Array
любой индекс вне границ (который в данном случае равен 0
, поскольку children[]
пуст) вернет undefined
.IE перестает работать в следующем случае, так как 2-й параметр становится undefined
-
parent.insertBefore(child, parent.childNodes[0])
//parent.childNodes[INDEX]
//where `INDEX` is greater than parent.childNodes.length
Таким образом, лучший подход для этого случая будет
var refEl = parent.childNodes[INDEX] || null;
parent.insertBefore(newRowHolderNode.childNodes[0], refEl);