我通过js动态添加li,然后通过jq的each遍历的时候遍历不到新添加的元素。
<div class="goodDiv">
<li class="mui-table-view-cell" style="border-bottom: #0d0d0d;" >
<div class="mui-input-row" style="height:50px;" >
<label style="width:40px;float:left;">货品:</label>
<textarea type="text" class="goodName" readonly="readonly" style="overflow:hidden;height:42px;font-size:12px;padding-top:5px;padding-left:0px;width:62%;float:left;" placeholder="必选"></textarea>
<span class="mui-pull-right mui-icon mui-icon-minus delete_goods" style="margin-left:10px;"></span>
<span class="mui-pull-right mui-icon mui-icon-plus select_goods" style="margin-left:0px;"></span>
</div>
<div class="mui-input-row">
<label style="width:40px;float:left;margin-left:px;">数量:</label>
<input type="text" class="num_style" style="float: left;" onkeyup="clearNoNum(this)" placeholder="必填">
</div>
</li>
</div>
解决方法:
在js动态添加函数里面再一次遍历,就可以遍历到新元素了
//删除货品
var delete_goods = $('.delete_goods');
delete_goods.each(function(i, good) {
good.addEventListener('click', function () {
var liNum=$(".goodDiv").children("li").length;
var liDom=$(this).parents("li").find(".goodName").val();
if(liNum>1){
$(this).parents("li").remove();
}
}, false);
});
//添加货品
$(".addGood").click(function(e){
delete_goods = $('.delete_goods');
$(".goodDiv li").before($("#addLiDemo").html());
// $('.goodDiv').trigger('change');
// $(".goodsNum").innerHTML=++n+"";
delete_goods = $('.delete_goods');
delete_goods.each(function(i, good) {
good.addEventListener('click', function () {
var liNum=$(".goodDiv").children("li").length;
var liDom=$(this).parents("li").find(".goodName").val();
if(liNum>1){
$(this).parents("li").remove();
}
}, false);
});
});