Как посчитать количество созданных мной объектов? - PullRequest
1 голос
/ 06 ноября 2019

Я могу создавать объекты-члены, используя следующую HTML-кодировку. Но для некоторых вычислений мне нужно получить количество объектов-членов. Также, когда я удаляю один из объектов-членов, это должно уменьшить количество объектов-членов.

Следующее выполнение создаст элементы.

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);
}

Этот код будет передавать данные из базы данных в элемент выбораmenu.

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
        }
    });
}

Этот окончательный код удалит элемент один. Я нажимаю кнопку корзины, которую я реализовал в функции добавления элемента.

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

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

Ответы [ 2 ]

2 голосов
/ 06 ноября 2019

Вы можете сосчитать детей вашего memberContainer. Если у вас есть только один, я бы дал ему идентификатор вместо имени класса. Но это работает в обе стороны.

console.log(document.getElementsByClassName("memberContainer")[0].children.length)
<div class="memberContainer">
  <div>child</div>
  <div>child</div>
  <div>child</div>
</div>
0 голосов
/ 06 ноября 2019

просто добавьте скрытый ввод со значением 0 или независимо от того, какое у вас начальное значение объектов, каждый раз, когда вы используете, добавьте код члена, увеличьте его, а когда вы используете удалить член, уменьшите его, ваш html

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

java-скрипт увеличитсяФункция добавляет эту строку в конце ее

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

и в конце удаления членов функции добавляет эту

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

, вы можете получить значение объектов в любое время, используя

var objectCounter = document.getElementById('objectsCounter').value;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...