HTMLCollection - это живой запрос.
Значение:
Объекты NodeList и NamedNodeMap в DOM работают; то есть изменения в базовой структуре документа отражаются во всех соответствующих объектах NodeList и NamedNodeMap. Например, если пользователь DOM получает объект NodeList, содержащий дочерние элементы элемента, а затем добавляет дополнительные дочерние элементы к этому элементу (или удаляет дочерние элементы, или изменяет их), эти изменения автоматически отражаются в NodeList без дальнейших действий над часть пользователя. Аналогичным образом, изменения узла в дереве отражаются во всех ссылках на этот узел в объектах NodeList и NamedNodeMap.
Вот почему вы получаете бесконечный цикл.
inp=document.getElementsByTagName('input');
В цикле я вижу, что создаются новые <input>
.
x=document.createElement('input');
Таким образом, решение должно быть либо изменить на inp=document.querySelectorAll("input")
Или иметь статическую переменную длины
вроде так:
var = inp=document.getElementsByTagName('input'),
inputsLength = inp.length;
for(c=0;c<inputsLength;c++){
... loop ....
}