Написал я скрипт, в принципе делает что надо
function addField(event) {
var x = event.target.parentNode;
//var l = x.getElementByTagName('label'); //тут подвисает
var y = x.nextSibling;
while (y.nodeName == "DD" || y.nodeType == 3) y = y.nextSibling;
var e = document.createElement('dd');
e.innerHTML = '<input type="text" class="long-input" name="js-field" title="generated" />';
y.parentNode.insertBefore(e, y);
}
Но, захотел я получить текст из label, а тут облом. Не могу понять, почему-то подвисает в закомментированном месте.