繁体   English   中英

如何计算我创建的对象数量?

[英]How to count number of objects I create?

我可以使用以下 html 编码创建成员对象。 但是对于某些计算,我需要获取成员对象的计数。 此外,当我删除成员 object 之一时,它应该减少成员对象的数量。

以下函数将创建成员。

function appendMember(rowNumber) {
    debugger

    var subrowNumber = parseInt($("#itemmapWrapper" + rowNumber + "").attr("data-subrowNumber"));


    subrowNumber = isNaN(subrowNumber) ? 1 : subrowNumber + 1;

    var addNewItemDetailHtml = "<div class='col-lg-10 col-md-10 col-sm-10 col-xs-10 itemmapAllocationWrapper  custom-paaddingnone form-group' \
                               id='dvaddNewItemDetailSub" + subrowNumber + "' data-subrowNumber='" + subrowNumber + "'>";

    addNewItemDetailHtml += "<div class='col-lg-4 col-md-4 col-sm-4 col-xs-4 custom-paaddingnone'>\
                                <div class='col-lg-3 col-md-3 col-sm-3 col-xs-3 custom-paaddingnone text-center'>\
                                </div>\
                                <div class='col-lg-9 col-md-9 col-sm-9 col-xs-9 custom-paaddingnone'>\
                                    <div class='col-lg-12 col-md-12 col-sm-12 col-xs-12 custom-paaddingnone'>\
                                        <div class='col-lg-10 col-md-10 col-sm-10 col-xs-10 custom-paaddingnone'>\
                                            <select class='form-control' id ='memberid"+ rowNumber + subrowNumber + "' ></select>\
                                        </div>\
                                    </div>\
                                </div>\
                             </div>";

    addNewItemDetailHtml += "<div class='col-lg-2 col-md-2 col-sm-2 col-xs-2 custom-paaddingnone'>\
                                <span class='glyphicon glyphicon-trash removeBtn' onclick = 'removeMemberDetail(this)' ></span >\
                            </div>";

    addNewItemDetailHtml += "</div>";

    addNewItemDetailHtml += "</div>";



    $("#itemmapWrapper" + rowNumber + "").attr("data-subrowNumber", subrowNumber);
    $(".memberContainer").append(addNewItemDetailHtml);
    intialize_memberDropDown(rowNumber, subrowNumber);
}

此代码将从 db 获取数据到成员 select 菜单。

function intialize_memberDropDown(rowNumber, subrowNumber) {
    $.ajax({
        type: "GET",
        url: "/Member/GetAllMember/",
        cache: false,
        success: function (data) {
            debugger
            var countryHTMLString = "<option value ='0'>Select Member</option>";
            if (data.isSucess) {
                $.each(data.data, function (index, item) {
                    countryHTMLString += "<option value ='" + item.memberid + "'>" + item.membername + "</option>";

                });
            }
            $("#memberid" + rowNumber + subrowNumber + "").html(countryHTMLString)
            calculateTotalHotailBill(rowNumber)
        }, error: function (err) {
            debugger
        }
    });
}

这个最终代码将删除一个成员,我单击在 append 成员 function 上实现的垃圾按钮。

function removeMemberDetail(buttonElement) {
    debugger
    $(buttonElement).parents(".itemmapAllocationWrapper").remove();

    if ($(".itemmapAllocationWrapper").html() == "") {
        $("#memberid").removeAttr("disabled");
    }
}

您可以计算您的 memberContainer 的孩子。 如果你只有一个,我会给它一个 id 而不是类名。 但它是双向的。

 console.log(document.getElementsByClassName("memberContainer")[0].children.length)
 <div class="memberContainer"> <div>child</div> <div>child</div> <div>child</div> </div>

只需添加一个带有 0 值的隐藏输入或任何您的对象初始值,每次您使用添加成员代码时增加它,当您使用删除成员时减少它您的 html

<input type='hidden' id='objectsCounter' value='0'>

java 脚本增加 function 在它的末尾添加这一行

var objectCounter = document.getElementById('objectsCounter').value;
objectCounter++;
document.getElementById('objectsCounter').value = objectCounter

并在删除成员 function 的末尾添加此

var objectCounter = document.getElementById('objectsCounter').value;
objectCounter--;
document.getElementById('objectsCounter').value = objectCounter

您可以随时使用获取对象的值

var objectCounter = document.getElementById('objectsCounter').value;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM