具有相同模板的多个div

时间:2015-05-28 05:54:17

标签: javascript jquery html

我有一个' users page'。我想给textbox输入一个号码。用户点击submit' n'不需要向用户呈现用户表单。

User1

first name - 

last name -

User2

first name -

last name -

.
.
.

UserN

first name - 

last name -

我不知道' N'的价值。前期。因此,编写多个div'是一个好主意。在我的HTML中。

要求:我希望拥有一个用户模板div。并复制模板' n'时间取决于' n'的值在textbox。但我也想要所有的divs'有'user1', 'user2'等不同的ID。

除了用太多的' divs'填充我的HTML之外,我无法找到一种方法。需要帮助获得指定的要求。

寻找类似的模板: -

<div id="user-template" class="hidden">
      <label class="lbl"><b>Handle:</b></label><input type="text" id="first_name" value=""/>
</div>

想要id =&#34; user-template&#34;改变所有新的div。

2 个答案:

答案 0 :(得分:1)

一种简单的方法是编写一个获取n值的函数,并返回可以附加到页面上某个父元素的实际dom。下面是一个简单的例子:

function createNDivs(n) {
  if(!n) return;

  var fragment =document.createDocumentFragment();
  for(var i=0;i<n;i++) {
       var div = document.createElement('div');
       fragment.appendChild(div);
   }

   return fragment;
}

答案 1 :(得分:1)

您可以尝试使用this

您可以创建一个模板,并将其附加到DOM中,以输入在输入字段中输入的数字。

$(document).ready(function() {
  $("#createForms").click(function() {
    var numOfForms = $("#numOfForms").val();
    var template = $('#hidden-template').html();
    for (var i = 0; i < numOfForms; i++) {
      $('#targetDiv').append("<p>User" + (i + 1) + ":</p>");
      $('#targetDiv').append(template);
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="numOfForms"></input>
<input type="button" id="createForms" value="Get Fields"></input>

<div id="targetDiv"></div>


<script id="hidden-template" type="text/x-custom-template">
  <div id="user-template" class="hidden">
    <p>First Name:
      <input type="text" name="firstName"></input>
    </p>
    <p>Last Name:
      <input type="text" name="lastName"></input>
    </p>
    <br>
  </div>
</script>