Как добавить текстовые поля динамически, не теряя значения предыдущих текстовых полей?

Я использую innerHTML для добавления текстовых полей динамически. Пример кода выглядит следующим образом:

<html>
<head>
  <script type="text/javascript" >
  var i=0;
  function add()
  {
    var tag = "<input type='text' name='" + i + "' /> <br/>";
    document.getElementById("y").innerHTML += tag;
    i++;
  }
  </script>
</head>

<body>
  <input type="button" id="x" value="Add" onclick="add();" />
  <div id="y"></div>
</body>

</html

Существуют ли способы динамического добавления текстовых полей без потери значений предыдущего текстового поля при добавлении нового текстового поля?
Подобный вопрос был размещен, но нет ответов :(

Что делать, если я хочу добавить текстовое поле в этой ситуации:

function add() {
   var element='<li class="ie7fix" style="width:620px;"><div class="m_elementwrapper" style="float:left;"><label class="fieldlabel" style="width:106px;float:left;padding-top:3px;" for="p1f4"><span><span class="pspan arial" style="text-align:right;font-size:14px;"><span class="ispan" xml:space="preserve"></span></span></span></label><div style="float:left;width:475px;" class="m_elementwrapper"><input type="text" style="font-family:Arial, Helvetica, sans-serif;font-size:14px;width:244px;max-width:244px;" name="' + i + '"  class="fieldcontent"><div class="fielderror"></div></div></div><div style="clear:both;font-size:0;"></div></li>';
   document.getElementById("addskills").innerHTML += element;
   i++;
}

Ответы на вопрос(3)

Ваш ответ на вопрос