如何动态地将按钮附加到div

laz*_*laz 2 javascript jquery

这是我的代码

<div class="EquipmentContent row">
      <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 subSection" style="float:right;background:#dff0ff;">         
        <section class="col-xs-12 col-sm-1 cl-md-1 col-lg-1">
          <button type="button" style="display: inline-block;float:right;" class="btn btn-danger" onclick="hideEquipmentDetails()"><i class="fa fa-times"></i></button>
        </section>
      </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

这里是动态加载div数据

var content= response.data.filters;
$.each(content,function(i,value){ 
    $('.subSection').html('<section class="col-xs-12 col-sm-2 cl-md-2 col-lg-2"><label class="equipmentHeaderlable">Name</label><label class="equipmentHeaderValues">'+value.name+'</label></section>').appendTo('.EquipmentContent');
});
Run Code Online (Sandbox Code Playgroud)

它正确循环但只显示第一个对象.(即我在一个数组中有6个名字,但它只显示第一个名字.)为什么呢?我试过添加滚动和高度.

还有一件事我怎样才能动态地附加这一部分?

<section class="col-xs-12 col-sm-1 cl-md-1 col-lg-1">
<button type="button" style="display: inline-block;float:right;" class="btn btn-danger" onclick="hideEquipmentDetails()"><i class="fa fa-times"></i></button>
    </section>
Run Code Online (Sandbox Code Playgroud)

Ror*_*san 6

问题是因为你html()在循环中使用.html()清除所有现有内容并应用您在其位置提供的任何内容.这就是为什么只有循环中的最后一项才可见.

要解决此问题,请append()改用.

var content= response.data.filters;
$.each(content,function(i,value){ 
  $('.subSection').append('<section class="col-xs-12 col-sm-2 cl-md-2 col-lg-2"><label class="equipmentHeaderlable">Name</label><label class="equipmentHeaderValues">' + value.name + '</label></section>').appendTo('.EquipmentContent');
});
Run Code Online (Sandbox Code Playgroud)

您也可以使用相同的方法append()将第二个示例中的内容添加到DOM中.