2013-02-13 72 views
0

我有以下div标签与子标签。JQuery追加新的div到其父母

<div class="span6"> 
    <div class="control-group"> 
     <label class="control-label" for="inputEmail">Item Name</label> 
     <div class="controls"> 
      <input type="text" id="inputEmail" class="input-xlarge" placeholder="Enter item name here..."> 
     </div> 
    </div> 
</div> 

我想根据阵列追加孩子<div class="control-group"></div><div class="span6"></div>。所以我写了JavaScript如下。

$.each(categories, function (k, elem) { 
    var options = ''; 
    var options = ' 
    <div class="control-group"> 
     <label for="StockCategory">Category</label> 
     <div class="controls"> 
      <select class="input-xlarge get-category"> 
    '; 
    options +='<option value="">Select Category</option>'; 
    $.each(data, function(key, value) { 
     options += '<option value="' + key + '">' + value + '</option>'; 
    }); 
    options +=' 
      </select> 
     </div> 
    </div>'; 
    $("div.span6").append(options); 
} 

所以我想根据数组追加这些子div,但没有发生。所以我需要以下结果。

<div class="span6"> 
    <div class="control-group"> 
     <label class="control-label" for="inputEmail">Item Name</label> 
     <div class="controls"> 
      <input type="text" id="inputEmail" class="input-xlarge" placeholder="Enter item name here..."> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label" for="inputEmail">Item Name</label> 
     <div class="controls"> 
      <input type="text" id="inputEmail" class="input-xlarge" placeholder="Enter item name here..."> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label" for="inputEmail">Item Name</label> 
     <div class="controls"> 
      <input type="text" id="inputEmail" class="input-xlarge" placeholder="Enter item name here..."> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label" for="inputEmail">Item Name</label> 
     <div class="controls"> 
      <input type="text" id="inputEmail" class="input-xlarge" placeholder="Enter item name here..."> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label" for="inputEmail">Item Name</label> 
     <div class="controls"> 
      <input type="text" id="inputEmail" class="input-xlarge" placeholder="Enter item name here..."> 
     </div> 
    </div> 
</div> 

请帮我解决。这项工作更受赞赏。

+0

我不明白...'所以我需要下面的结果.' ...我没有看到任何与'StockCategory'等等......你是说你只需要克隆第一个div ...看到你的结果看起来像这就是你想要的...... – bipen 2013-02-13 10:46:29

+0

和你的'数据'第二个每个循环? – bipen 2013-02-13 10:48:12

回答

1

下面jQuery将做要紧。

<script type="text/javascript"> 
$(document).ready(function(){ 

    var data = { val1 : 'text1', val2 : 'text2', val3 : 'text3' }; 
    var options = ''; 
    $.each(data, function(key, value) { 

/* options = '<div class="control-group"><label for="StockCategory">Category</label><div class="controls"><select class="input-xlarge get-category">'; 
    options += '<option value="">Select Category</option>'; 
    options += '<option value="' + key + '">' + value + '</option>'; 
    options +='</select></div></div>'; 
*/ 


    options = '<div class="control-group"><label class="control-label" for="' + key + '">' + key + '</label><div class="controls">'; 
    options +='<input type="text" id="' + key + '" class="input-xlarge" placeholder="' + value + '">'; 
    options +='</div></div>'; 



    $("div.span6").append(options); 

    }); 
}); 
</script> 
1

我首先要看的是span6缺少一个关闭</div> - 这是否解决了这个问题?

1

尽量把追加的代码$。每个

var options = '';   
$.each(categories, function (k, elem) { 
var options = ' 
<div class="control-group"> 
    <label for="StockCategory">Category</label> 
    <div class="controls"> 
     <select class="input-xlarge get-category"> 
      '; 
      options +='<option value="">Select Category</option>'; 
      $.each(data, function(key, value) { 
      options += '<option value="' + key + '">' + value + '</option>'; 
      }); 
      options +=' 
     </select> 
    </div> 
</div>'; 

} 
$("div.span6").append(options); 
1

外尝试改变你的脚本

var options = ''; 

$.each(categories, function (k, elem) { 
    options += ' 
    <div class="control-group"> 
     <label for="StockCategory">Category</label> 
     <div class="controls"> 
      <select class="input-xlarge get-category"> 
       <option value="">Select Category</option> 
    '; 
    $.each(data, function(key, value) { 
     options += '<option value="' + key + '">' + value + '</option>'; 
    }); 
    options +=' 
      </select> 
     </div> 
    </div>'; 
} 

$("div.span6").append(options);